Django Метка git ошибка "слишком много SQL переменных", как я могу ограничить запрос? - PullRequest
0 голосов
/ 08 марта 2020

Здравствуйте, у меня есть сайт обоев. Я использую тег git. У меня есть теги 200 КБ и обои 20 КБ.

Я хочу использовать похожие обои в виде, подобном этому

def detail(request,slug):

    wallpaper = get_object_or_404(Wallpapers, slug = slug)
    category = Category.objects.all()
    similar_posts = wallpaper.tags.similar_objects()[:20]
    random.shuffle(similar_posts)
    return render(request, "detail.html", {"wallpaper": wallpaper, "category": category, "similar_posts": similar_posts,  })

, и я получаю ошибку "слишком много SQL переменных".

пример тегов обоев: аниме, вода, дождь

15k + обои имеют аниме тег

Как я могу ограничить или отфильтровать запросы по этим связанным элементам обоев?

1 Ответ

1 голос
/ 08 марта 2020

Я НАШЕЛ РЕШЕНИЕ, КАК ЭТО

 similar_posts = wallpaper.tags.similar_objects()[:20]
 random.shuffle(similar_posts)

изменить на;

 similar_posts = Wallpapers.objects.filter(tags__name__in = [wallpaper.tags.names()]).order_by('?')[:20]
...