Django从元组检索用户
我正在使用这种友谊模式。此模型允许您在用户之间创建朋友。 我还有一个名为Profile的UserProfile模型,在上面 下面的命令显示如何查看特定用户的所有友谊请求Django从元组检索用户,django,Django,我正在使用这种友谊模式。此模型允许您在用户之间创建朋友。 我还有一个名为Profile的UserProfile模型,在上面 下面的命令显示如何查看特定用户的所有友谊请求 AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User') class Friend(models.Model): """ Model to represent Friendships """ to_user = models.
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
class Friend(models.Model):
""" Model to represent Friendships """
to_user = models.ForeignKey(AUTH_USER_MODEL, related_name='friends')
from_user = models.ForeignKey(AUTH_USER_MODEL, related_name='_unused_friend_relation')
created = models.DateTimeField(default=timezone.now)
objects = FriendshipManager()
class Meta:
verbose_name = _('Friend')
verbose_name_plural = _('Friends')
unique_together = ('from_user', 'to_user')
def __unicode__(self):
return "User #%d is friends with #%d" % (self.to_user_id, self.from_user_id)
class FriendshipManager(models.Manager):
def unread_requests(self, user):
""" Return a list of unread friendship requests """
key = cache_key('unread_requests', user.pk)
unread_requests = cache.get(key)
if unread_requests is None:
qs = FriendshipRequest.objects.select_related(depth=1).filter(
to_user=user,
viewed__isnull=True).all()
unread_requests = list(qs)
cache.set(key, unread_requests)
return unread_requests
class Person(models.Model):
user = models.ForeignKey(User))
name = models.CharField(max_length=30, blank=True)
image = models.ImageField(upload_to='photos', blank=True)
def __unicode__(self):
return self.user.username
创建好友列表
Person.objects.filter ( ? )
过滤使用
>>> requests = Friend.objects.unread_requests(user=user3)
>>> requests
[<FriendshipRequest: User #1 friendship requested #3>, <FriendshipRequest: User
#2 friendship requested #3>]
>>> requests[0].to_user
Person.objects.filter ( ? )
list_of_friend_requests = [r.to_user for r in requests]
persons = Person.objects.filter(user__in=list_of_friend_requests)