gpt4 book ai didi

python - 如何在 django session 中存储查询集以进行分页

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:27 25 4
gpt4 key购买 nike

在 Django 1.6 中,我有一个模型存储在我的数据库中,我正在查询它以获得一些结果。然而,由于结果有时可能足以填满一个页面,我正在尝试严格按照这篇文章的框架实现分页系统:https://stackoverflow.com/a/18106904/178728 .

现在的问题是,在 request.session 中,我需要存储我的查询集,而不仅仅是简单的值。然而,这会产生各种问题,因为 Django 提示我的查询集不是 json 可序列化的。

到目前为止我已经尝试过:

1) request.session['data'] = myQueryset # Fails
2) request.session['data'] = serializers.serialize('json', myQueryset)
# succeeds at first but fails in deserialization as
# I can't reassemble the original queryset

无论如何,我的问题是:存储和检索查询集的最简单方法是什么?

请注意,当用户使用 POST 请求搜索数据库时,我需要存储查询集,然后通过 GET 检索结果以在分页器中使用。

提前致谢。

最佳答案

我刚刚找到了解决问题的方法:这正是我要找的:https://gist.github.com/bsnux/4672788

import pickle

# Session key
key = 'my_qs'

# Pizza => model example
qs = Pizza.objects.filter(ingredient='tomato')
# Dumping data
request.session[key] = pickle.dumps(qs.query)

# Loading data
pizzas = Pizza.objects.all()[:1]
pizzas.query = pickle.loads(request.session[key])

# Using qs
for pizza in pizzas:
print(pizza.ingredient)

希望这对将来的人有所帮助。干杯。

关于python - 如何在 django session 中存储查询集以进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com