Thursday, June 9, 2011

Boolean field, unexpected behavior

I am not new to django, but this misbehavior is blowing my mind. I
cannot understand what is happening. please help.

Django 1.1

I have:
class MeetingMember(models.Model):
lastname = models.CharField(max_length = 30)
firstname = models.CharField(max_length = 30)
active = models.BooleanField()

and a script to set initial values:

def fillmembers():

pad_unreals= 1

print "ALL: ",MeetingMember.objects.all()

for x in range(pad_unreals):
m = MeetingMember()
m.firstname, m.lastname = 'unsued','unused'
m.save()
print "1: ",m.pk,m.active
m.active = "False"
print "2: ",m.active
m.save()
print "3: ",m.pk,m.active
print ""

for x in MeetingMember.objects.all():
print x.pk,x.active


And the output i get is:


ALL: []
1: 1 False
2: False
3: 1 False

1 True


###

!?

This is starting with a freshly synced DB (sqlite)

First, why can i save without specifying active? (also, the CharFields
seem to be empty stings and i can save without specifying them also)

second, after specifying false, saving and verifying that it is false,
when I retrieve it from the DB, I get true!

I can edit it in the admin to false and it stays false, I can edit it
on the command line and it stays false. but the script behaves oddly.

please help, and I will learn something important.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate