Django:提供中间页面的动作......有100k行

时间:2018-04-12 13:11:24

标签: django django-admin

我知道如何编写提供中间页面的动作,因为文档很棒:

https://docs.djangoproject.com/en/2.0/ref/contrib/admin/actions/#actions-that-provide-intermediate-pages

但是,如果我的选择包含100k行,则由于URL太长,文档的模式不起作用。

如何编写提供中间页面并可以处理+ 100k行的Django Admin Actions?

2 个答案:

答案 0 :(得分:2)

我这样解决了:

  • Pickle QuerySets
  • 在随机ID
  • 下的缓存中存储pickled QuerySet
  • 将随机ID转发到下一页
  • 接下来的页面使用随机ID从缓存中读取QuerySet。

答案 1 :(得分:1)

当我需要更接近的东西时,我使用了一些分组变量,例如:allactiveaccepteddenied。通过执行此分组,我可以对大量数据执行一些批量操作,而无需创建包含数千个pks的python列表。

要注意的另一个好处是你需要将其传递给数据库,否则你将会对视图/模型产生巨大的瓶颈。