擅长:python、mysql、java
<p>将用户映射到项目的表有一个<code>article</code>字段,它只是一个整数列,而不是外键。它与您的articles表没有任何关系,只有两个共享一个名称</p>
<p>您所做的工作称为多对多关系,Django实际上有一个名为<a href="https://docs.djangoproject.com/en/1.11/ref/models/fields/#manytomanyfield" rel="nofollow noreferrer">^{<cd2>}</a>的特殊字段,它为您管理中间表(因此您不必创建<code>LikeArticle</code>):</p>
<pre><code>class Article(models.Model):
title = models.CharField()
text = models.TextField()
likes = models.IntegerField(default=0)
user = models.ForeignKey(User)
favorited_by = models.ManyToManyField(User, related_name="favorite_articles")
</code></pre>
<p>现在,你可以这样做:</p>
<pre><code>def favorite(request):
favorite_list = request.user.favorite_articles.all()
return render(request, 'article/favorite.html', {'articleList': favorite_list})
</code></pre>
<p>相反的关系:<code>Article.objects.get(id=123).favorited_by.all()</code></p>