我有一个使用内置用户模型的 Django 项目。
我需要添加与用户的关系。目前,用户喜欢的文章为“喜欢”关系,其他用户关注的文章为“关注”关系。
定义这些关系的最佳方式是什么? django 文档建议创建一个与用户具有一对一关系的 Profile 模型,以向用户添加字段。但在我的例子中,没有额外的字段将被添加到用户配置文件中,这太过分了。
有什么建议吗?
最佳答案
对于这些特殊的多对多关系,您必须在模型中定义它们:
class UserFollowing(models.Model):
user = models.ForeignKey(User, related_name='following')
following = models.ForeignKey(User, related_name='followed_by')
那么如果你有一个用户,你可以做这样的事情:
user = User.objects.get(...)
user.following.all() # all users this user is following
user.followed_by.all() # all users who follow this user
对于文章,您已经设置了类似的架构:
class ArticleLike(models.Model):
article = models.ForeignKey(Article, related_name='likes')
like = models.ForeignKey(User, related_name='articles_like')
Article.objects.get(...).likes.all()
User.objects.get(...).articles_like.all()
关于python - django 将关系添加到用户模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13033979/