如何在Django中编写这个"模型"?

TIM*_*MEX 2 python django

我目前正在使用Django Users模型.非常简单.但是,我想添加一个功能:添加朋友!

我想在我的表中创建2列:

UID(用户的ID)friend_id(他的朋友的ID!...当然,这个ID也在Django的用户模型中.UID-friend_id组合必须是唯一的!例如,如果我的ID是84,我不能有两行相同,因为我只能订阅同一个朋友一次.

谁能告诉我这是否是正确的方法呢?我应该为"friend_id"做一些KEY关系,还是应该像这样把它留作"IntegerField"?

class Friend(models.Model):
    uid = models.ForeignKey(User)
    friend_id = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

谢谢

And*_*ler 11

您应该创建一个定义两个用户之间关系的模型,然后定义两个外键字段,每个字段对应一个用户.然后,您可以添加唯一约束以确保没有重复项.

这里有一篇文章解释了如何做到这一点:http://www.packtpub.com/article/building-friend-networks-with-django-1.0

该页面的示例模型:

class Friendship(models.Model):
  from_friend = models.ForeignKey(
    User, related_name='friend_set'
  )
  to_friend = models.ForeignKey(
    User, related_name='to_friend_set'
  )
  def __unicode__(self):
    return u'%s, %s' % (
      self.from_friend.username,
      self.to_friend.username
    )
  class Meta:
    unique_together = (('to_friend', 'from_friend'), )
Run Code Online (Sandbox Code Playgroud)