mirror of
https://github.com/django/django.git
synced 2025-06-05 11:39:13 +00:00
[1.10.x] Doc'd that model instances with pk=None don't compare equal.
Backport of 224fe22bf1628c1feff110ce993dcb33880bf3a3 from master
This commit is contained in:
parent
c2853807bc
commit
27d352800c
@ -646,9 +646,10 @@ with :func:`~django.utils.encoding.python_2_unicode_compatible` as shown above.
|
|||||||
.. method:: Model.__eq__()
|
.. method:: Model.__eq__()
|
||||||
|
|
||||||
The equality method is defined such that instances with the same primary
|
The equality method is defined such that instances with the same primary
|
||||||
key value and the same concrete class are considered equal. For proxy
|
key value and the same concrete class are considered equal, except that
|
||||||
models, concrete class is defined as the model's first non-proxy parent;
|
instances with a primary key value of ``None`` aren't equal to anything except
|
||||||
for all other models it is simply the model's class.
|
themselves. For proxy models, concrete class is defined as the model's first
|
||||||
|
non-proxy parent; for all other models it's simply the model's class.
|
||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
@ -664,10 +665,18 @@ For example::
|
|||||||
class MultitableInherited(MyModel):
|
class MultitableInherited(MyModel):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
# Primary keys compared
|
||||||
MyModel(id=1) == MyModel(id=1)
|
MyModel(id=1) == MyModel(id=1)
|
||||||
MyModel(id=1) == MyProxyModel(id=1)
|
|
||||||
MyModel(id=1) != MultitableInherited(id=1)
|
|
||||||
MyModel(id=1) != MyModel(id=2)
|
MyModel(id=1) != MyModel(id=2)
|
||||||
|
# Primay keys are None
|
||||||
|
MyModel(id=None) != MyModel(id=None)
|
||||||
|
# Same instance
|
||||||
|
instance = MyModel(id=None)
|
||||||
|
instance == instance
|
||||||
|
# Proxy model
|
||||||
|
MyModel(id=1) == MyProxyModel(id=1)
|
||||||
|
# Multi-table inheritance
|
||||||
|
MyModel(id=1) != MultitableInherited(id=1)
|
||||||
|
|
||||||
``__hash__()``
|
``__hash__()``
|
||||||
--------------
|
--------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user