Commit ac695208 authored by Brian Rosner's avatar Brian Rosner
Browse files

Added the missing form option to the ModelAdmin options section. Also added a...

Added the missing form option to the ModelAdmin options section. Also added a section for custom validation in the admin.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@8208 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent bf65fd0a
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -69,6 +69,13 @@ Example::

    date_hierarchy = 'pub_date'

``form``
~~~~~~~~

The default ``forms.ModelForm`` class used to generate the form on the
add/change pages for models. You can easily change this to your own
``ModelForm`` to override the default form behavior of the add/change pages.

``fieldsets``
~~~~~~~~~~~~~

@@ -528,6 +535,31 @@ apply as `regular media definitions on forms`_.

.. _regular media definitions on forms: ../forms/#media

Adding custom validation to the admin
-------------------------------------

Adding custom validation of data in the admin is quite easy. The automatic
admin interfaces reuses the Django `forms`_ module. The ``ModelAdmin`` class
gives you the ability define your own form::

    class ArticleAdmin(admin.ModelAdmin):
        form = MyArticleAdminForm

``MyArticleAdminForm`` can be defined anywhere as long as you import where
needed. Now within your form you can add your own custom validation for
any field::
    
    class MyArticleAdminForm(forms.ModelForm):
        def clean_name(self):
            # do something that validates your data
            return self.cleaned_data["name"]

It is important you use a ``ModelForm`` here otherwise things can break. See
the `forms`_ documentation on `custom validation`_ for more information.

.. _forms: ../forms/
.. _custom validation: ../forms/#custom-form-and-field-validation

``InlineModelAdmin`` objects
============================