Fixed #982 -- Added '__ne__' support for Django models, which apparently wasn't working on Python 2.3 (?)

git-svn-id: http://code.djangoproject.com/svn/django/trunk@1547 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2005-12-05 03:39:18 +00:00
parent 65c1a9f1c9
commit 3cd7755ec6
1 changed files with 4 additions and 0 deletions

View File

@ -729,6 +729,7 @@ class ModelBase(type):
# Create the default class methods. # Create the default class methods.
attrs['__init__'] = curry(method_init, opts) attrs['__init__'] = curry(method_init, opts)
attrs['__eq__'] = curry(method_eq, opts) attrs['__eq__'] = curry(method_eq, opts)
attrs['__ne__'] = curry(method_ne, opts)
attrs['save'] = curry(method_save, opts) attrs['save'] = curry(method_save, opts)
attrs['save'].alters_data = True attrs['save'].alters_data = True
attrs['delete'] = curry(method_delete, opts) attrs['delete'] = curry(method_delete, opts)
@ -978,6 +979,9 @@ def method_init(opts, self, *args, **kwargs):
def method_eq(opts, self, other): def method_eq(opts, self, other):
return isinstance(other, self.__class__) and getattr(self, opts.pk.attname) == getattr(other, opts.pk.attname) return isinstance(other, self.__class__) and getattr(self, opts.pk.attname) == getattr(other, opts.pk.attname)
def method_ne(opts, self, other):
return not method_eq(opts, self, other)
def method_save(opts, self): def method_save(opts, self):
# Run any pre-save hooks. # Run any pre-save hooks.
if hasattr(self, '_pre_save'): if hasattr(self, '_pre_save'):