summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/db/models/query.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 92395a3c4a..7f9fc3e5d9 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -835,11 +835,15 @@ def delete_objects(seen_objs):
del_query.delete_batch_related(pk_list)
update_query = sql.UpdateQuery(cls, connection)
- for field in cls._meta.fields:
+ 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,
field.rel.to._meta.fields)):
- update_query.clear_related(field, pk_list)
+ if model:
+ sql.UpdateQuery(model, connection).clear_related(field,
+ pk_list)
+ else:
+ update_query.clear_related(field, pk_list)
# Now delete the actual data.
for cls in ordered_classes: