The problem is, it is impossible to make a FileField None.

>>> from django.db import connection
>>> from app.models import Model
>>> instance = Model.objects.all()[0]
>>> instance.filefield = None
>>> instance.save()
>>> print connection.queries[-1]

On 20 Feb, 19:06, Collin Grady <[email protected]> wrote:
> It will only store NULL if you set it to None - if you leave the field
> blank in a form or admin, there's still an empty string posted for
> most string field types, so it stores that empty string.
>
> On Fri, Feb 20, 2009 at 4:57 AM, [email protected]
>
>
>
> <[email protected]> wrote:
>
> > If a FileField with null=True is set to None, the db stores '' in the
> > db and not NULL as I would expect.
>
> > Also, if a FileField has both blank=True and null=True a ModelForm
> > without a file will save '' in the db, not sure if this is the desired
> > behaviour.
>
> > So the question is should the behaviour be as-is and if not is the
> > correct place to solve it in get_db_prep_value?
>
> > Example of code that this issue affects:
>
> > Model.objects.filter(filefield=u'') seems wrong as compared to
> > Model.objects.filter(filefield__isnull=True)
>
> > Model.objects.aggregate(Count('filefield')) i would expect this to
> > count objects with a file and not those without a file.
>
> > This may relate to other fields aswell, if a field has both blank=True
> > and null=True should it not store NULL in the db?
>
> --
> Collin Grady
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to