diff options
| author | Anssi Kääriäinen <akaariai@gmail.com> | 2013-08-07 09:51:32 +0300 |
|---|---|---|
| committer | Anssi Kääriäinen <akaariai@gmail.com> | 2013-08-19 09:51:28 +0300 |
| commit | 4668c142dce77c6f29fb75532c1acfa1b2d322ff (patch) | |
| tree | 0d4bfb51d43879c9e0410e42152542a3c78e828d /docs/ref/models | |
| parent | 40909826172374b849ddc9db8e1a8be9a8c3251b (diff) | |
Made Model.__eq__ consider proxy models equivalent
Fixed #11892, fixed #16458, fixed #14492.
Diffstat (limited to 'docs/ref/models')
| -rw-r--r-- | docs/ref/models/instances.txt | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt index cb8570afdc..94b1face81 100644 --- a/docs/ref/models/instances.txt +++ b/docs/ref/models/instances.txt @@ -494,6 +494,40 @@ using ``__str__()`` like this:: # first_name and last_name will be unicode strings. return force_bytes('%s %s' % (self.first_name, self.last_name)) +``__eq__`` +---------- + +.. method:: Model.__eq__() + +The equality method is defined such that instances with the same primary +key value and the same concrete class are considered equal. The term +concrete class means proxy model's first non-proxy parent or the class +itself if it isn't a proxy class. + +For example:: + + form django.db import models + + class MyModel(models.Model): + id = models.AutoField(primary_key=True) + + class MyProxyModel(MyModel): + class Meta: + proxy = True + + class MultitableInherited(MyModel): + pass + + MyModel(id=1) == MyModel(id=1) + MyModel(id=1) == MyProxyModel(id=1) + MyModel(id=1) != MultitableInherited(id=1) + MyModel(id=1) != MyModel(id=2) + +.. versionchanged:: 1.7 + + In previous versions only instances of the exact same class and same + primary key value were considered equal. + ``get_absolute_url`` -------------------- |
