From dbb0df2a0ec5bee80bee336fc81408efb30b7e47 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 24 Dec 2015 10:25:59 -0500 Subject: Fixed #25985 -- Updated signature of ModelAdmin.formfield_for_* to make request a positional argument. --- django/contrib/admin/options.py | 10 ++++------ django/contrib/gis/admin/options.py | 5 ++--- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'django') diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 42880aba81..d30fe83756 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -119,15 +119,13 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): overrides.update(self.formfield_overrides) self.formfield_overrides = overrides - def formfield_for_dbfield(self, db_field, **kwargs): + def formfield_for_dbfield(self, db_field, request, **kwargs): """ Hook for specifying the form Field instance for a given database Field instance. If kwargs are given, they're passed to the form Field's constructor. """ - request = kwargs.pop("request", None) - # If the field specifies choices, we don't need to look for special # admin widgets - we just need to use a select widget of some kind. if db_field.choices: @@ -177,7 +175,7 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): # For any other type of field, just call its formfield() method. return db_field.formfield(**kwargs) - def formfield_for_choice_field(self, db_field, request=None, **kwargs): + def formfield_for_choice_field(self, db_field, request, **kwargs): """ Get a form Field for a database Field that has declared choices. """ @@ -208,7 +206,7 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): return db_field.remote_field.model._default_manager.using(db).order_by(*ordering) return None - def formfield_for_foreignkey(self, db_field, request=None, **kwargs): + def formfield_for_foreignkey(self, db_field, request, **kwargs): """ Get a form Field for a ForeignKey. """ @@ -229,7 +227,7 @@ class BaseModelAdmin(six.with_metaclass(forms.MediaDefiningClass)): return db_field.formfield(**kwargs) - def formfield_for_manytomany(self, db_field, request=None, **kwargs): + def formfield_for_manytomany(self, db_field, request, **kwargs): """ Get a form Field for a ManyToManyField. """ diff --git a/django/contrib/gis/admin/options.py b/django/contrib/gis/admin/options.py index ed983a1337..0fe5400c1d 100644 --- a/django/contrib/gis/admin/options.py +++ b/django/contrib/gis/admin/options.py @@ -52,19 +52,18 @@ class GeoModelAdmin(ModelAdmin): media.add_js(self.extra_js) return media - def formfield_for_dbfield(self, db_field, **kwargs): + def formfield_for_dbfield(self, db_field, request, **kwargs): """ Overloaded from ModelAdmin so that an OpenLayersWidget is used for viewing/editing 2D GeometryFields (OpenLayers 2 does not support 3D editing). """ if isinstance(db_field, models.GeometryField) and db_field.dim < 3: - kwargs.pop('request', None) # Setting the widget with the newly defined widget. kwargs['widget'] = self.get_map_widget(db_field) return db_field.formfield(**kwargs) else: - return super(GeoModelAdmin, self).formfield_for_dbfield(db_field, **kwargs) + return super(GeoModelAdmin, self).formfield_for_dbfield(db_field, request, **kwargs) def get_map_widget(self, db_field): """ -- cgit v1.3