From 19c7db005823efc2da73ca3bcb37ee15451589c8 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Mon, 28 Jul 2008 01:32:46 +0000 Subject: Fixed #7853 -- Fixed another case of deleting inherited models with foreign key references. Thanks to Russell for the test case that demonstrated the problem. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8128 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/query.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'django') 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: -- cgit v1.3