我非常喜欢 Django,并且很喜欢它实现的分页功能。然而,当我尝试跨多个页面拆分随机排序的 queryset 时,遇到了问题。
例如,我有一个包含100个元素的 queryset,希望以每页25个元素的方式显示它们。如果将 context 对象提供为随机排序的 queryset(使用 .order_by('?') 指定),则每次请求新页面(第2页、第3页、第4页)时,都会加载完全不同的新 queryset 。
明确说明:如何请求一次随机排序的单个 queryset,并将其跨可消化的页面进行显示?
例如,我有一个包含100个元素的 queryset,希望以每页25个元素的方式显示它们。如果将 context 对象提供为随机排序的 queryset(使用 .order_by('?') 指定),则每次请求新页面(第2页、第3页、第4页)时,都会加载完全不同的新 queryset 。
明确说明:如何请求一次随机排序的单个 queryset,并将其跨可消化的页面进行显示?
cursor.execute("SELECT setseed(%s);" % seed)
,然后在读取/构建查询集时也能正常工作。为什么呢?因为我需要一个真正的查询集,带有所有的功能(在django-oscar中...)。objects.raw()提供了一种缩减列表样式的结果...无论如何,这个答案是解决问题的方法。 - benzkji