本文介绍了精确查找的 QuerySet 值必须限制为使用 slicing-Django 的一个结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在建立一个新闻网站.虽然我试图获取具有相同标签的相关新闻列表.错误说:精确查找的 QuerySet 值必须限制为使用切片的一个结果-姜戈.
I'm building a news website.While I tried to get the list of relative news which have the same tags.The error said:The QuerySet value for an exact lookup must be limited to one result using slicing-Django.
我有两个模型 News 和 Tag,Tag 是 News 的多对多外键.
I have two models News and Tag,Tag is a many to many foreign key of News.
新闻模型:
class News(models.Model):
tag = models.ManyToManyField(Tag, blank=True, verbose_name='tag')
标签模型:
class Tag(models.Model):
name = models.CharField(max_length=40)
查看:
def newsDetailView(request, news_pk):
news = get_object_or_404(News, id=news_pk)
tags = news.tag.annotate(news_count=Count('news'))
relative_news = News.objects.filter(tag=tags)
return render(request, "news_detail.html", {
'news': news,
'tags': tags,
'relative_news': relative_news
})
有朋友可以帮忙吗?非常感谢!
Any friend can help?Thank you so much!
推荐答案
以下将起作用:
def newsDetailView(request, news_pk):
news = get_object_or_404(News, id=news_pk)
relative_news = News.objects.filter(tag__id__in=news.tag.all())
这篇关于精确查找的 QuerySet 值必须限制为使用 slicing-Django 的一个结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!