| 1 | Index: models.py
|
|---|
| 2 | ===================================================================
|
|---|
| 3 | --- models.py (revision 13431)
|
|---|
| 4 | +++ models.py (working copy)
|
|---|
| 5 | @@ -150,7 +150,7 @@
|
|---|
| 6 | data[f.name] = f.value_from_object(instance)
|
|---|
| 7 | return data
|
|---|
| 8 |
|
|---|
| 9 | -def fields_for_model(model, fields=None, exclude=None, widgets=None, formfield_callback=lambda f, **kwargs: f.formfield(**kwargs)):
|
|---|
| 10 | +def fields_for_model(model, fields=None, exclude=None, widgets=None, formfield_callback=None):
|
|---|
| 11 | """
|
|---|
| 12 | Returns a ``SortedDict`` containing form fields for the given model.
|
|---|
| 13 |
|
|---|
| 14 | @@ -175,6 +175,10 @@
|
|---|
| 15 | kwargs = {'widget': widgets[f.name]}
|
|---|
| 16 | else:
|
|---|
| 17 | kwargs = {}
|
|---|
| 18 | +
|
|---|
| 19 | + if not formfield_callback:
|
|---|
| 20 | + formfield_callback = lambda f, **kwargs: f.formfield(**kwargs)
|
|---|
| 21 | +
|
|---|
| 22 | formfield = formfield_callback(f, **kwargs)
|
|---|
| 23 | if formfield:
|
|---|
| 24 | field_list.append((f.name, formfield))
|
|---|
| 25 | @@ -198,8 +202,8 @@
|
|---|
| 26 |
|
|---|
| 27 | class ModelFormMetaclass(type):
|
|---|
| 28 | def __new__(cls, name, bases, attrs):
|
|---|
| 29 | - formfield_callback = attrs.pop('formfield_callback',
|
|---|
| 30 | - lambda f, **kwargs: f.formfield(**kwargs))
|
|---|
| 31 | + formfield_callback = attrs.pop('formfield_callback', None)
|
|---|
| 32 | +
|
|---|
| 33 | try:
|
|---|
| 34 | parents = [b for b in bases if issubclass(b, ModelForm)]
|
|---|
| 35 | except NameError:
|
|---|
| 36 | @@ -375,8 +379,7 @@
|
|---|
| 37 | class ModelForm(BaseModelForm):
|
|---|
| 38 | __metaclass__ = ModelFormMetaclass
|
|---|
| 39 |
|
|---|
| 40 | -def modelform_factory(model, form=ModelForm, fields=None, exclude=None,
|
|---|
| 41 | - formfield_callback=lambda f: f.formfield()):
|
|---|
| 42 | +def modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None):
|
|---|
| 43 | # Create the inner Meta class. FIXME: ideally, we should be able to
|
|---|
| 44 | # construct a ModelForm without creating and passing in a temporary
|
|---|
| 45 | # inner class.
|
|---|
| 46 | @@ -658,7 +661,7 @@
|
|---|
| 47 | form.fields[self._pk_field.name] = ModelChoiceField(qs, initial=pk_value, required=False, widget=HiddenInput)
|
|---|
| 48 | super(BaseModelFormSet, self).add_fields(form, index)
|
|---|
| 49 |
|
|---|
| 50 | -def modelformset_factory(model, form=ModelForm, formfield_callback=lambda f: f.formfield(),
|
|---|
| 51 | +def modelformset_factory(model, form=ModelForm, formfield_callback=None,
|
|---|
| 52 | formset=BaseModelFormSet,
|
|---|
| 53 | extra=1, can_delete=False, can_order=False,
|
|---|
| 54 | max_num=None, fields=None, exclude=None):
|
|---|
| 55 | @@ -813,7 +816,7 @@
|
|---|
| 56 | formset=BaseInlineFormSet, fk_name=None,
|
|---|
| 57 | fields=None, exclude=None,
|
|---|
| 58 | extra=3, can_order=False, can_delete=True, max_num=None,
|
|---|
| 59 | - formfield_callback=lambda f: f.formfield()):
|
|---|
| 60 | + formfield_callback=None):
|
|---|
| 61 | """
|
|---|
| 62 | Returns an ``InlineFormSet`` for the given kwargs.
|
|---|
| 63 |
|
|---|