from django.db import models from django.contrib.auth.models import User import datetime class UserOpenID(models.Model): user = models.ForeignKey(User, raw_id_admin=True) openid = models.CharField(maxlength=255) created_at = models.DateTimeField() def __str__(self): return "" % (self.user, self.openid) class Admin: pass class Meta: ordering = ('-created_at',) def associate_openid(user, openid): "Associate an OpenID with a user account" # Remove any matching records first, just in case some slipped through unassociate_openid(user, openid) # Now create the new record new = UserOpenID( user = user, openid = openid, created_at = datetime.datetime.now() ) new.save() def unassociate_openid(user, openid): "Remove an association between an OpenID and a user account" matches = UserOpenID.objects.filter( user__id = user.id, openid = openid ) [m.delete() for m in matches]