[1.8.x] Fixed #24289 -- Reversed usage of Field.many_to_one and one_to_many.

Thanks Carl Meyer and Tim Graham for the reviews and to all involved
in the discussion.

Backport of 18c0aaa912 from master
This commit is contained in:
Loic Bistuer 2015-02-14 01:55:36 +07:00
parent 136edac897
commit 20b621eb3c
8 changed files with 34 additions and 34 deletions

View file

@ -1863,16 +1863,6 @@ relation. These attribute are present on all fields; however, they will only
have meaningful values if the field is a relation type
(:attr:`Field.is_relation=True <Field.is_relation>`).
.. attribute:: Field.one_to_many
Boolean flag that is ``True`` if the field has a one-to-many relation, such
as a ``ForeignKey``; ``False`` otherwise.
.. attribute:: Field.one_to_one
Boolean flag that is ``True`` if the field has a one-to-one relation, such
as a ``OneToOneField``; ``False`` otherwise.
.. attribute:: Field.many_to_many
Boolean flag that is ``True`` if the field has a many-to-many relation;
@ -1882,9 +1872,19 @@ have meaningful values if the field is a relation type
.. attribute:: Field.many_to_one
Boolean flag that is ``True`` if the field has a many-to-one relation, such
as a ``ForeignKey``; ``False`` otherwise.
.. attribute:: Field.one_to_many
Boolean flag that is ``True`` if the field has a one-to-many relation, such
as a ``GenericRelation`` or the reverse of a ``ForeignKey``; ``False``
otherwise.
.. attribute:: Field.one_to_one
Boolean flag that is ``True`` if the field has a one-to-one relation, such
as a ``OneToOneField``; ``False`` otherwise.
.. attribute:: Field.related_model
Points to the model the field relates to. For example, ``Author`` in

View file

@ -213,7 +213,7 @@ can be made to convert your code to the new API:
for f in MyModel._meta.get_fields()
if not f.is_relation
or f.one_to_one
or (f.one_to_many and f.related_model)
or (f.many_to_one and f.related_model)
]
* ``MyModel._meta.get_concrete_fields_with_model()``::
@ -224,7 +224,7 @@ can be made to convert your code to the new API:
if f.concrete and (
not f.is_relation
or f.one_to_one
or (f.one_to_many and f.related_model)
or (f.many_to_one and f.related_model)
)
]
@ -240,7 +240,7 @@ can be made to convert your code to the new API:
[
f for f in MyModel._meta.get_fields()
if f.many_to_one and f.auto_created
if f.one_to_many and f.auto_created
]
* ``MyModel._meta.get_all_related_objects_with_model()``::
@ -248,7 +248,7 @@ can be made to convert your code to the new API:
[
(f, f.model if f.model != MyModel else None)
for f in MyModel._meta.get_fields()
if f.many_to_one and f.auto_created
if f.one_to_many and f.auto_created
]
* ``MyModel._meta.get_all_related_many_to_many_objects()``::
@ -274,7 +274,7 @@ can be made to convert your code to the new API:
for field in MyModel._meta.get_fields()
# For complete backwards compatibility, you may want to exclude
# GenericForeignKey from the results.
if not (field.one_to_many and field.related_model is None)
if not (field.many_to_one and field.related_model is None)
)))
This provides a 100% backwards compatible replacement, ensuring that both