本文介绍了精确查找的 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 的一个结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 21:22