summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-11-21 22:18:52 +0100
committerClaude Paroz <claude@2xlibre.net>2013-11-21 22:18:52 +0100
commit1718b5256cd65b8701e315e307c2eb2b5dd4c8d9 (patch)
tree970db7894ea88b11a5c4ec8917163b8ffd4b3838 /django
parente6d5f7ae49cd4ffb0e4c6d69d77efcb33f0e5be7 (diff)
Fixed #21405 -- Prevented queryset overwrite in BaseModelAdmin
Thanks guido@20tab.com for the report and Tim Graham for the analyze.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/options.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 48b93166c8..e67f081557 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -215,9 +215,10 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)):
})
kwargs['empty_label'] = _('None') if db_field.blank else None
- queryset = self.get_field_queryset(db, db_field, request)
- if queryset is not None:
- kwargs['queryset'] = queryset
+ if not 'queryset' in kwargs:
+ queryset = self.get_field_queryset(db, db_field, request)
+ if queryset is not None:
+ kwargs['queryset'] = queryset
return db_field.formfield(**kwargs)
@@ -238,9 +239,10 @@ class BaseModelAdmin(six.with_metaclass(RenameBaseModelAdminMethods)):
elif db_field.name in (list(self.filter_vertical) + list(self.filter_horizontal)):
kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in self.filter_vertical))
- queryset = self.get_field_queryset(db, db_field, request)
- if queryset is not None:
- kwargs['queryset'] = queryset
+ if not 'queryset' in kwargs:
+ queryset = self.get_field_queryset(db, db_field, request)
+ if queryset is not None:
+ kwargs['queryset'] = queryset
return db_field.formfield(**kwargs)