def create(cls, obj, tag): tag, created = SourceTag.objects.get_or_create(tag=tag, tag_crc32=crc32(tag)) tagged_item = SourceTaggedItem(object=obj, tag=tag) tagged_item.save() return tagged_item
def get_or_create(cls, first_name, last_name, email, user=None): email = email.lower() d, created = Donor.objects.get_or_create(email=email, email_crc32=crc32(email)) state_changed = False if user and user != d.user: d.user = user state_changed = True else: try: # For those donating anonymously # who are already registered (active) users existing_user = User.objects.get(email=email, is_active=True) d.user=existing_user except User.DoesNotExist: pass if d.first_name != first_name: d.first_name = first_name state_changed = True if d.last_name != last_name: d.last_name = last_name state_changed = True if state_changed: d.save() return d
def from_email(cls, email): try: email = email.lower() return Donor.objects.get(email=email, email_crc32=crc32(email)) except Donor.DoesNotExist: return None except Exception, err: logging.exception("Error Retrieving Donor On Email") return None
def save(self, *args, **kw): self.email = self.email.lower() self.email_crc32 = crc32(self.email) super(Donor, self).save(*args, **kw)