我有一个简单的模型文章。模型为:
class Article(models.Model):
title = models.CharField()
text = models.TextField()
likes = models.IntegerField(default=0)
user = models.ForeignKey(User)
我也登录,喜欢,每个用户都有喜欢的文章。 我制作新模型:
class LikeArticle(models.Model):
article = models.IntegerField()
user = models.ForeignKey(User)
鉴于我们有
def articleLike(request):
if request.method == 'POST':
article_id = request.POST['id']
article_like = LikeArticle(
article=article_id,
user=request.user
)
article_like.save()
当我们想看所有喜欢的文章
def favorite(request):
favorite_list = LikeArticle.objects.all()
return render(request, 'article/favorite.html', {'articleList': favorite_list})
但现在它返回我的id文章和用户名,我可以如何筛选和选择 Article.objects.all()
我的逻辑正确吗? 也许我需要改变一切
将用户映射到项目的表有一个
article
字段,它只是一个整数列,而不是外键。它与您的articles表没有任何关系,只有两个共享一个名称您所做的工作称为多对多关系,Django实际上有一个名为^{} 的特殊字段,它为您管理中间表(因此您不必创建
LikeArticle
):现在,你可以这样做:
相反的关系:
Article.objects.get(id=123).favorited_by.all()
您需要通过外键链接
LikeArticle
和Article
:相关问题 更多 >
编程相关推荐