如何解决Django-如何表示2种追踪关系
| 我希望用户能够互相关注(每个用户可以关注并被多个用户关注)。用ForeignKeys表示有什么问题吗? class Follow(models.Model):
followed=models.ForeignKey(User,unique=True)
follower=models.ForeignKey(User,related_name=\"follower\")
def __unicode__(self):
return self.followed
解决方法
您最好在
Person
或User
类上使用具有self的ManyToMany。例如:
class Person(models.Model):
first_name = CharField(max_length=50)
followers = ManyToMany(\"self\",related_name=\"following\")
这样,用更少的代码,您可以执行以下操作:
p = Person.objects.get(first_name=\"bob\")
p.following.all() # Everyone bob is following
p.followers.all() # Everyone that is following bob
有关self的ManyToMany的更多信息,请参见Django文档。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。