X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fdjango-ldapdb.git;a=blobdiff_plain;f=ldapdb%2Fmodels%2Fbase.py;h=bc6ca92e8c34e1a57a0ae046e3183669927d7ca9;hp=e98133b58cc7f596f61c365cadfb8b12a27df6a5;hb=629356eed3430e528274c5a54c5291037bc0d985;hpb=baba34a193fe7d304d86003b19f36ed638c7ec80 diff --git a/ldapdb/models/base.py b/ldapdb/models/base.py index e98133b..bc6ca92 100644 --- a/ldapdb/models/base.py +++ b/ldapdb/models/base.py @@ -68,6 +68,7 @@ class Model(django.db.models.base.Model): # meta-data base_dn = None + search_scope = ldap.SCOPE_SUBTREE object_classes = ['top'] def __init__(self, *args, **kwargs): @@ -85,8 +86,8 @@ class Model(django.db.models.base.Model): Build the Relative Distinguished Name for this entry. """ bits = [] - for field in self._meta.local_fields: - if field.primary_key: + for field in self._meta.fields: + if field.db_column and field.primary_key: bits.append("%s=%s" % (field.db_column, getattr(self, field.name))) if not len(bits): raise Exception("Could not build Distinguished Name") @@ -114,7 +115,7 @@ class Model(django.db.models.base.Model): entry = [('objectClass', self.object_classes)] new_dn = self.build_dn() - for field in self._meta.local_fields: + for field in self._meta.fields: if not field.db_column: continue value = getattr(self, field.name) @@ -132,7 +133,7 @@ class Model(django.db.models.base.Model): record_exists = True modlist = [] orig = self.__class__.objects.get(pk=self.saved_pk) - for field in self._meta.local_fields: + for field in self._meta.fields: if not field.db_column: continue old_value = getattr(orig, field.name, None) @@ -160,6 +161,11 @@ class Model(django.db.models.base.Model): self.saved_pk = self.pk signals.post_save.send(sender=self.__class__, instance=self, created=(not record_exists)) + def validate_unique(self, exclude=None): + # FIXME: we are bypassing the unicity checks, as they break + # the admin interface + pass + @classmethod def scoped(base_class, base_dn): """