Improved formatting of deconstruct() docs.

This commit is contained in:
areski 2014-08-13 18:00:45 +02:00 committed by Tim Graham
parent 7f4be9cbc2
commit d441a9d006
1 changed files with 13 additions and 10 deletions

View File

@ -560,19 +560,22 @@ Adding a deconstruct() method
You can let Django serialize your own custom class instances by giving the class You can let Django serialize your own custom class instances by giving the class
a ``deconstruct()`` method. It takes no arguments, and should return a tuple a ``deconstruct()`` method. It takes no arguments, and should return a tuple
of three things: ``(path, args, kwargs)``. Note this return value is different of three things ``(path, args, kwargs)``:
from the ``deconstruct()`` method :ref:`for custom fields
<custom-field-deconstruct-method>` which returns a tuple of four items.
``path`` should be the Python path to the class, with the class name included as the * ``path`` should be the Python path to the class, with the class name included
last part (for example, ``myapp.custom_things.MyClass``). If your class is not as the last part (for example, ``myapp.custom_things.MyClass``). If your
available at the top level of a module it is not serializable. class is not available at the top level of a module it is not serializable.
``args`` should be a list of positional arguments to pass to your class' * ``args`` should be a list of positional arguments to pass to your class'
``__init__`` method. Everything in this list should itself be serializable. ``__init__`` method. Everything in this list should itself be serializable.
``kwargs`` should be a dict of keyword arguments to pass to your class' * ``kwargs`` should be a dict of keyword arguments to pass to your class'
``__init__`` method. Every value should itself be serializable. ``__init__`` method. Every value should itself be serializable.
.. note::
This return value is different from the ``deconstruct()`` method
:ref:`for custom fields <custom-field-deconstruct-method>` which returns a
tuple of four items.
Django will write out the value as an instantiation of your class with the Django will write out the value as an instantiation of your class with the
given arguments, similar to the way it writes out references to Django fields. given arguments, similar to the way it writes out references to Django fields.