On Dec 8, 2:02 pm, nasp <charett...@gmail.com> wrote: > You might consider > readinghttp://docs.djangoproject.com/en/dev/ref/models/fields/#null.
Thanks: that was the link I needed. However, I do take exception with the comment: If a string-based field has null=True, that means it has two possible values for “no data”: NULL, and the empty string. An empty string means something different in the context of a relational database than a NULL value (as -RAX- and Andrew hint at below). It goes a bit deeper than just unique constraints (although I have hit this several times), but also impacts upon relational algebra. (NULL and TRUE => NULL, for instance). Even just as a string, an empty string is different to NULL. An empty string means "I know what the value is, and it is a string of no length", compared to one use of a NULL, as "I don't know what the value is (yet)." In addition, NULL behaves vastly differently to an empty string when using COALESCE() or BOOL(). SELECT COALESCE(NULL, '', 'FOO'); => '' SELECT BOOL(''); => ERROR Now, if you stay in django-land, this is probably not going to bite you too much (unless you want an optional IPAddress field in a Postgres db), but if you sometimes have to hand-tune queries (or *gasp* create stored procedures in your database), then you lose the ability to use COALESCE, for instance. -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-develop...@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.