summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2013-02-05 05:39:35 -0500
committerSimon Charette <charette.s@gmail.com>2013-02-05 05:39:35 -0500
commita097ee32d8364045a950d6a36b19630fc34397f1 (patch)
treeb57cf2b53431367308b82ed20c12616ba3fc8660 /django
parentec469ade2b04b94bfeb59fb0fc7d9300470be615 (diff)
Fixed #17683 -- Make sure `BaseModelFormSet` respects defined widgets.
Diffstat (limited to 'django')
-rw-r--r--django/forms/models.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index 837da74814..e2d739fd1a 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -678,7 +678,11 @@ class BaseModelFormSet(BaseFormSet):
else:
qs = self.model._default_manager.get_query_set()
qs = qs.using(form.instance._state.db)
- form.fields[self._pk_field.name] = ModelChoiceField(qs, initial=pk_value, required=False, widget=HiddenInput)
+ if form._meta.widgets:
+ widget = form._meta.widgets.get(self._pk_field.name, HiddenInput)
+ else:
+ widget = HiddenInput
+ form.fields[self._pk_field.name] = ModelChoiceField(qs, initial=pk_value, required=False, widget=widget)
super(BaseModelFormSet, self).add_fields(form, index)
def modelformset_factory(model, form=ModelForm, formfield_callback=None,