Kaydet (Commit) 9fd90c40 authored tarafından David Beitey's avatar David Beitey Kaydeden (comit) Tim Graham

Clarified deconstruct() in Custom Model Field docs.

üst 45dfb364
...@@ -231,9 +231,10 @@ Field deconstruction ...@@ -231,9 +231,10 @@ Field deconstruction
-------------------- --------------------
The counterpoint to writing your ``__init__()`` method is writing the The counterpoint to writing your ``__init__()`` method is writing the
``deconstruct()`` method. This method tells Django how to take an instance :meth:`~.Field.deconstruct` method. It's used during :doc:`model migrations
of your new field and reduce it to a serialized form - in particular, what </topics/migrations>` to tell Django how to take an instance of your new field
arguments to pass to ``__init__()`` to re-create it. and reduce it to a serialized form - in particular, what arguments to pass to
``__init__()`` to re-create it.
If you haven't added any extra options on top of the field you inherited from, If you haven't added any extra options on top of the field you inherited from,
then there's no need to write a new ``deconstruct()`` method. If, however, then there's no need to write a new ``deconstruct()`` method. If, however,
...@@ -269,8 +270,10 @@ we can drop it from the keyword arguments for readability:: ...@@ -269,8 +270,10 @@ we can drop it from the keyword arguments for readability::
del kwargs["max_length"] del kwargs["max_length"]
return name, path, args, kwargs return name, path, args, kwargs
If you add a new keyword argument, you need to write code to put its value If you add a new keyword argument, you need to write code in ``deconstruct()``
into ``kwargs`` yourself:: that puts its value into ``kwargs`` yourself. You should also omit the value
from ``kwargs`` when it isn't necessary to reconstruct the state of the field,
such as when the default value is being used::
from django.db import models from django.db import models
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment