Fixed #33441 -- Restored immutability of models.Field.__hash__().
Regression in 502e75f9ed
.
This commit is contained in:
parent
652c68ffee
commit
fdfa97fb16
|
@ -542,11 +542,7 @@ class Field(RegisterLookupMixin):
|
|||
return NotImplemented
|
||||
|
||||
def __hash__(self):
|
||||
return hash((
|
||||
self.creation_counter,
|
||||
self.model._meta.app_label if hasattr(self, 'model') else None,
|
||||
self.model._meta.model_name if hasattr(self, 'model') else None,
|
||||
))
|
||||
return hash(self.creation_counter)
|
||||
|
||||
def __deepcopy__(self, memodict):
|
||||
# We don't have to deepcopy very much here, since most things are not
|
||||
|
|
|
@ -128,9 +128,14 @@ class BasicFieldTests(SimpleTestCase):
|
|||
self.assertLess(abstract_model_field, inherit2_model_field)
|
||||
self.assertLess(inherit1_model_field, inherit2_model_field)
|
||||
|
||||
self.assertNotEqual(hash(abstract_model_field), hash(inherit1_model_field))
|
||||
self.assertNotEqual(hash(abstract_model_field), hash(inherit2_model_field))
|
||||
self.assertNotEqual(hash(inherit1_model_field), hash(inherit2_model_field))
|
||||
def test_hash_immutability(self):
|
||||
field = models.IntegerField()
|
||||
field_hash = hash(field)
|
||||
|
||||
class MyModel(models.Model):
|
||||
rank = field
|
||||
|
||||
self.assertEqual(field_hash, hash(field))
|
||||
|
||||
|
||||
class ChoicesTests(SimpleTestCase):
|
||||
|
|
Loading…
Reference in New Issue