Значение QuerySet для точного поиска должно быть ограничено одним результатом с использованием Slicing-Django - PullRequest
0 голосов
/ 20 мая 2018

Я создаю новостной веб-сайт. Пока я пытался получить список относительных новостей, которые имеют те же теги. Ошибка сказала: Значение QuerySet для точного поиска должно быть ограничено одним результатом с использованием Slicing-Django.

У меня есть две модели News и Tag, Tag - это много-много внешних ключей News.

News model:

class News(models.Model):

    tag = models.ManyToManyField(Tag, blank=True, verbose_name='tag')

Tag model:

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
    })

Любой друг может помочь? Большое спасибо!

1 Ответ

0 голосов
/ 20 мая 2018

Будет работать следующее:

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())
...