# django__django-13401 # Loki Mode Multi-Agent Patch # Attempts: 1 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -516,13 +516,21 @@ class Field(RegisterLookupMixin): def __eq__(self, other): # Needed for @total_ordering if isinstance(other, Field): - return self.creation_counter == other.creation_counter + return ( + self.creation_counter == other.creation_counter and + self.model == other.model + ) return NotImplemented def __lt__(self, other): # This is needed because bisect does not take a comparison function. if isinstance(other, Field): - return self.creation_counter < other.creation_counter + if self.creation_counter != other.creation_counter: + return self.creation_counter < other.creation_counter + elif self.model is not None and other.model is not None: + return self.model._meta.label < other.model._meta.label + return False return NotImplemented def __hash__(self): - return hash(self.creation_counter) + return hash((self.creation_counter, self.model))