On Jun 18, 2012, at 4:05 PM, Ian wrote: >> I'd assume that Django would only generate schemas where NULL is allowed for >> fields where blank=True, and that fields where blank=False would have "NOT >> NULL" included in the Oracle DDL. > > blank=True is a validation option, not a database option. A field with > blank=False can still have the empty string as a possible value, and it can > be stored like that in any of the other backends; it's just not accepted by > the admin site.
My mistake; I forgot that the blank attribute is an admin validation option only. > In this case it's mainly a cross-compatibility issue -- if an app stores the > empty string on a blank=False field in Postgres, it should be able to do that > when the backend is Oracle as well. Gotcha: since Oracle uses NULL to denote empty strings, the Oracle backend overrides Field.null to always be True. What I'd like to do is (1) disallow NULLs, and (2) disallow empty strings. It looks like there's no current way to do this with Oracle since the backend overrides null to always be True, and blank is an admin validation thing only. I'm happy to make my own local subclass of CharField/TextField/etc that has the behavior that I'd like; I'm guessing that the Django team don't intend to change this behavior. (It seems that the only way to do this would be to change the semantics of null, which seems foolhardy, or add yet another option, which would be quite confusing with null and blank already.) -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.