【问题标题】:Django Taggit error "too many SQL variables" how can i do limit query?Django Taggit 错误“SQL 变量太多”如何进行限制查询?
【发布时间】:2020-03-09 01:18:41
【问题描述】:

您好,我有一个壁纸网站。我正在使用 taggit。我有 200k 标签和 20k 壁纸。

我想在这样的视图中使用相关壁纸

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+ 壁纸有动漫标签

如何限制或过滤查询此相关壁纸项?

【问题讨论】:

    标签: python django django-taggit


    【解决方案1】:

    我找到了这样的解决方案

     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]
    

    【讨论】:

      猜你喜欢
      • 2011-10-29
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多