<p>或许你可以这样尝试:</p>
<pre><code>Blog.objects.filter(userlikedblogs__user=request.user)
</code></pre>
<p>这里我使用<code>UserLikedBlogs</code>和<code>Blog</code>之间的<a href="https://docs.djangoproject.com/en/2.2/ref/models/relations/" rel="nofollow noreferrer"><strong>^{<cd1>}</strong></a>来获得用户喜欢的博客。你知道吗</p>
<hr/>
<p>根据OP在此答案底部添加的评论进行更新:</p>
<p>在这里,如果用户喜欢或不喜欢博客,基本上你需要对信息进行注释。您可以使用<a href="https://docs.djangoproject.com/en/2.2/ref/models/conditional-expressions/" rel="nofollow noreferrer"><strong>^{<cd4>}</strong></a>这样做:</p>
<pre><code>from django.db.models import Case, Value, BooleanField
blogs = Blog.objects.annotate(
liked=Case(
When(userlikedblogs__user=request.user, then=Value(True)),
default=Value(False),
output_field=BooleanField(),
)
)
</code></pre>
<p>并在<code>template</code>中使用这些博客(当您通过上下文从视图发送到模板时):</p>
<pre><code>{% for blog in blogs %}
{% if blog.liked %}
<a style="background:blue" href="{% url 'blog:detail' blog.pk %}">{{ blog.title }}</a>
{% else %}
<a style="background:green" href="{% url 'blog:detail' blog.pk %}">{{ blog.title }}</a>
{% endif %}
{% endfor %}
</code></pre>