Django 按标签名称列出的相关帖子
我想通过标签名显示相关帖子,但是我得到了一个错误,返回了多个标签-返回了2个 根据,get用于检索1项。如果有多个项目,这里可能有多个标签在一篇文章中使用,它会抛出错误 因此,您可以这样更改它:Django 按标签名称列出的相关帖子,django,django-views,Django,Django Views,我想通过标签名显示相关帖子,但是我得到了一个错误,返回了多个标签-返回了2个 根据,get用于检索1项。如果有多个项目,这里可能有多个标签在一篇文章中使用,它会抛出错误 因此,您可以这样更改它: tags=Tag.objects.filter(post=post) related_item=Post.objects.filter(tag__in=tags,status=2).order_by('-created_date').distinct()[:3] 根据,get用于检索1项。如果有多
tags=Tag.objects.filter(post=post)
related_item=Post.objects.filter(tag__in=tags,status=2).order_by('-created_date').distinct()[:3]
根据,get用于检索1项。如果有多个项目,这里可能有多个标签在一篇文章中使用,它会抛出错误
因此,您可以这样更改它:
tags=Tag.objects.filter(post=post)
related_item=Post.objects.filter(tag__in=tags,status=2).order_by('-created_date').distinct()[:3]
您可以像这样进行查询:
def post_detail(request,slug):
post=get_object_or_404(Post,slug=slug)
comments=Comment.objects.filter(post=post,reply=None,statusc=2).order_by('-date')
comment_count=len(comments)
related_items = Post.objects.filter(
tag__post=post
).order_by('-created_date').distinct()[:3]
# ...
或者,如果要排除当前帖子:
def post_detail(request,slug):
post=get_object_or_404(Post,slug=slug)
comments=Comment.objects.filter(post=post,reply=None,statusc=2).order_by('-date')
comment_count=len(comments)
related_items = Post.objects.exclude(pk=post.pk).filter(
tag__post=pos
).order_by('-created_date').distinct()[:3]
# ...
最好是做一个透镜。。在注释上,因为这将导致进行查询以获取注释,而使用两个单独的查询将命中数据库两次。您可以像这样进行查询:
def post_detail(request,slug):
post=get_object_or_404(Post,slug=slug)
comments=Comment.objects.filter(post=post,reply=None,statusc=2).order_by('-date')
comment_count=len(comments)
related_items = Post.objects.filter(
tag__post=post
).order_by('-created_date').distinct()[:3]
# ...
或者,如果要排除当前帖子:
def post_detail(request,slug):
post=get_object_or_404(Post,slug=slug)
comments=Comment.objects.filter(post=post,reply=None,statusc=2).order_by('-date')
comment_count=len(comments)
related_items = Post.objects.exclude(pk=post.pk).filter(
tag__post=pos
).order_by('-created_date').distinct()[:3]
# ...
最好是做一个透镜。。在注释上,因为这将导致进行查询以获取注释,而使用两个单独的查询将两次命中数据库。注释中的解决方案有效。我会记下你的答案的,谢谢。评论中的解决方案有效。我会记下你的答案谢谢。