1
0
mirror of https://github.com/django/django.git synced 2025-10-24 22:26:08 +00:00

Fixed #21405 -- Prevented queryset overwrite in BaseModelAdmin

Thanks guido@20tab.com for the report and Tim Graham for the
analyze.
This commit is contained in:
Claude Paroz
2013-11-21 22:18:52 +01:00
parent e6d5f7ae49
commit 1718b5256c
3 changed files with 32 additions and 6 deletions

View File

@@ -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)