From 7646b9023da7e1f6f3a871959db027b3ea36eebb Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 17 Mar 2024 08:43:04 +0000 Subject: Fixed #35301 -- Fixed Options._property_names for overriden properties. Regression in faeb92ea13f0c1b2cc83f45b512f2c41cfb4f02d. --- django/db/models/options.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'django') diff --git a/django/db/models/options.py b/django/db/models/options.py index f842faf0da..ed7be7dd7a 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -969,12 +969,14 @@ class Options: def _property_names(self): """Return a set of the names of the properties defined on the model.""" names = set() + seen = set() for klass in self.model.__mro__: names |= { name for name, value in klass.__dict__.items() - if isinstance(value, property) + if isinstance(value, property) and name not in seen } + seen |= set(klass.__dict__) return frozenset(names) @cached_property -- cgit v1.3