mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Fixed #13546 -- Easier handling of localize field options in ModelForm
This commit is contained in:
parent
be826aafac
commit
756b81dbd1
6 changed files with 114 additions and 21 deletions
|
@ -5,7 +5,7 @@ Model Form Functions
|
|||
.. module:: django.forms.models
|
||||
:synopsis: Django's functions for building model forms and formsets.
|
||||
|
||||
.. function:: modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None)
|
||||
.. function:: modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None, localized_fields=None)
|
||||
|
||||
Returns a :class:`~django.forms.ModelForm` class for the given ``model``.
|
||||
You can optionally pass a ``form`` argument to use as a starting point for
|
||||
|
@ -20,6 +20,8 @@ Model Form Functions
|
|||
|
||||
``widgets`` is a dictionary of model field names mapped to a widget.
|
||||
|
||||
``localized_fields`` is a list of names of fields which should be localized.
|
||||
|
||||
``formfield_callback`` is a callable that takes a model field and returns
|
||||
a form field.
|
||||
|
||||
|
@ -33,12 +35,14 @@ Model Form Functions
|
|||
information. Omitting any definition of the fields to use will result in all
|
||||
fields being used, but this behaviour is deprecated.
|
||||
|
||||
.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None, widgets=None, validate_max=False)
|
||||
The ``localized_fields`` parameter was added.
|
||||
|
||||
.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None, widgets=None, validate_max=False, localized_fields=None)
|
||||
|
||||
Returns a ``FormSet`` class for the given ``model`` class.
|
||||
|
||||
Arguments ``model``, ``form``, ``fields``, ``exclude``,
|
||||
``formfield_callback`` and ``widgets`` are all passed through to
|
||||
``formfield_callback``, ``widgets`` and ``localized_fields`` are all passed through to
|
||||
:func:`~django.forms.models.modelform_factory`.
|
||||
|
||||
Arguments ``formset``, ``extra``, ``max_num``, ``can_order``,
|
||||
|
@ -50,9 +54,9 @@ Model Form Functions
|
|||
|
||||
.. versionchanged:: 1.6
|
||||
|
||||
The ``widgets`` and the ``validate_max`` parameters were added.
|
||||
The ``widgets``, ``validate_max`` and ``localized_fields`` parameters were added.
|
||||
|
||||
.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None, validate_max=False)
|
||||
.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None, widgets=None, validate_max=False, localized_fields=None)
|
||||
|
||||
Returns an ``InlineFormSet`` using :func:`modelformset_factory` with
|
||||
defaults of ``formset=BaseInlineFormSet``, ``can_delete=True``, and
|
||||
|
@ -65,4 +69,4 @@ Model Form Functions
|
|||
|
||||
.. versionchanged:: 1.6
|
||||
|
||||
The ``widgets`` and the ``validate_max`` parameters were added.
|
||||
The ``widgets``, ``validate_max`` and ``localized_fields`` parameters were added.
|
||||
|
|
|
@ -234,6 +234,10 @@ Minor features
|
|||
.. _`Pillow`: https://pypi.python.org/pypi/Pillow
|
||||
.. _`PIL`: https://pypi.python.org/pypi/PIL
|
||||
|
||||
* :doc:`ModelForm </topics/forms/modelforms/>` accepts a new
|
||||
Meta option: ``localized_fields``. Fields included in this list will be localized
|
||||
(by setting ``localize`` on the form field).
|
||||
|
||||
Backwards incompatible changes in 1.6
|
||||
=====================================
|
||||
|
||||
|
|
|
@ -474,6 +474,24 @@ parameter when declaring the form field::
|
|||
See the :doc:`form field documentation </ref/forms/fields>` for more information
|
||||
on fields and their arguments.
|
||||
|
||||
|
||||
Enabling localization of fields
|
||||
-------------------------------
|
||||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
By default, the fields in a ``ModelForm`` will not localize their data. To
|
||||
enable localization for fields, you can use the ``localized_fields``
|
||||
attribute on the ``Meta`` class.
|
||||
|
||||
>>> class AuthorForm(ModelForm):
|
||||
... class Meta:
|
||||
... model = Author
|
||||
... localized_fields = ('birth_date',)
|
||||
|
||||
If ``localized_fields`` is set to the special value ``'__all__'``, all fields
|
||||
will be localized.
|
||||
|
||||
.. _overriding-modelform-clean-method:
|
||||
|
||||
Overriding the clean() method
|
||||
|
@ -570,6 +588,10 @@ keyword arguments, or the corresponding attributes on the ``ModelForm`` inner
|
|||
``Meta`` class. Please see the ``ModelForm`` :ref:`modelforms-selecting-fields`
|
||||
documentation.
|
||||
|
||||
... or enable localization for specific fields::
|
||||
|
||||
>>> Form = modelform_factory(Author, form=AuthorForm, localized_fields=("birth_date",))
|
||||
|
||||
.. _model-formsets:
|
||||
|
||||
Model formsets
|
||||
|
@ -663,6 +685,20 @@ class of a ``ModelForm`` works::
|
|||
>>> AuthorFormSet = modelformset_factory(
|
||||
... Author, widgets={'name': Textarea(attrs={'cols': 80, 'rows': 20})
|
||||
|
||||
Enabling localization for fields with ``localized_fields``
|
||||
----------------------------------------------------------
|
||||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
Using the ``localized_fields`` parameter, you can enable localization for
|
||||
fields in the form.
|
||||
|
||||
>>> AuthorFormSet = modelformset_factory(
|
||||
... Author, localized_fields=('value',))
|
||||
|
||||
If ``localized_fields`` is set to the special value ``'__all__'``, all fields
|
||||
will be localized.
|
||||
|
||||
Providing initial values
|
||||
------------------------
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue