Fixed #9308 -- Corrected the updated of nullable foreign key fields when deleting objects. Thanks to Bob Thomas for the fix, and markshep for the improvements on the test case.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10822 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2009-05-19 12:44:17 +00:00
parent ae95edf91d
commit b9b9ca334e
2 changed files with 17 additions and 5 deletions

View file

@ -615,7 +615,7 @@ class QuerySet(object):
clone = self._clone()
clone.query.add_immediate_loading(fields)
return clone
###################################
# PUBLIC INTROSPECTION ATTRIBUTES #
###################################
@ -632,7 +632,7 @@ class QuerySet(object):
else:
return False
ordered = property(ordered)
###################
# PRIVATE METHODS #
###################
@ -1007,7 +1007,7 @@ def delete_objects(seen_objs):
update_query = sql.UpdateQuery(cls, connection)
for field, model in cls._meta.get_fields_with_model():
if (field.rel and field.null and field.rel.to in seen_objs and
filter(lambda f: f.column == field.column,
filter(lambda f: f.column == field.rel.get_related_field().column,
field.rel.to._meta.fields)):
if model:
sql.UpdateQuery(model, connection).clear_related(field,