Added optional rel_name parameter to ManyToManyField, which makes it possible to many-to-many-relate a single model to another model more than once. Also updated the model docs to reflect this
git-svn-id: http://code.djangoproject.com/svn/django/trunk@257 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
895d232671
commit
bc5359f754
|
@ -2049,10 +2049,11 @@ class ForeignKey(Field):
|
|||
return [formfields.IntegerField]
|
||||
|
||||
class ManyToManyField(Field):
|
||||
def __init__(self, to, **kwargs):
|
||||
def __init__(self, to, rel_name=None, **kwargs):
|
||||
kwargs['name'] = kwargs.get('name', to._meta.module_name)
|
||||
kwargs['verbose_name'] = kwargs.get('verbose_name', to._meta.verbose_name_plural)
|
||||
kwargs['rel'] = ManyToMany(to, to._meta.object_name.lower(),
|
||||
rel_name = rel_name or to._meta.object_name.lower()
|
||||
kwargs['rel'] = ManyToMany(to, rel_name,
|
||||
num_in_admin=kwargs.pop('num_in_admin', 0),
|
||||
related_name=kwargs.pop('related_name', None),
|
||||
filter_interface=kwargs.pop('filter_interface', None),
|
||||
|
|
|
@ -455,12 +455,17 @@ Field Types
|
|||
|
||||
Many-to-many relations are a bit different from other fields. First, they
|
||||
aren't actually a field per se, because they use a intermediary join table.
|
||||
Second, they don't take any of the same options as the rest of the fields.
|
||||
The only arguments taken are:
|
||||
Second, they don't take the same options as the rest of the fields. The
|
||||
only arguments taken are:
|
||||
|
||||
======================= ============================================================
|
||||
Argument Description
|
||||
======================= ============================================================
|
||||
``rel_name`` Use this if you have more than one
|
||||
``ManyToOneField`` s in the same model that relate
|
||||
to the same model. Django will use ``rel_name`` in
|
||||
the generated API.
|
||||
|
||||
``related_name`` See the description of ``related_name`` in
|
||||
``ManyToOneField``, above.
|
||||
|
||||
|
@ -471,7 +476,19 @@ Field Types
|
|||
should the interface be stacked horizontally or
|
||||
vertically).
|
||||
|
||||
``limit_choices_to`` See the description under ``ManyToOneField``, above.
|
||||
``limit_choices_to`` See the description under ``ManyToOneField`` above.
|
||||
|
||||
``name`` An alphanumeric name for the relationship. If this
|
||||
isn't provided, Django uses the ``module_name`` of
|
||||
the related object.
|
||||
|
||||
This is only really useful when you have a single
|
||||
object that relates to the same object more than
|
||||
once.
|
||||
|
||||
``verbose_name`` A human-readable name for the object, singular. If
|
||||
this isn't provided, Django uses the
|
||||
``verbose_name`` for the related object.
|
||||
======================= ============================================================
|
||||
|
||||
``NullBooleanField``
|
||||
|
|
Loading…
Reference in New Issue