Django:将queryset传递给admin action的中间页面?

yeg*_*gle 1 django

目标

我的目标是在Django管理站点中编写"导出选择为CSV"操作.

在阅读link1后,我认为将导出请求重定向到自定义视图是个好主意.

这是一个问题:如何将当前queryset页面传递给中间页面?

如果选择所有实例,则link1中的方法不起作用(请参阅link2).

我目前的解决方案

为了在中间页面中获取查询集,我有两个选择:

  1. picklequeryset.query并将其发送到与中间页?qs={picked_qs_query},然后重新创建queryset中间页.在我看来,这是一个很好的解决方案,并使中间页面具有幂等性.
  2. 将查询集保存在会话中并将其加载到中间页面中.它很简单,但使页面不够幂等.

当然,我可以忽略中间页面并在"导出选择为CSV"操作中返回CSV内容,但这真的是个好主意吗?

有什么好主意吗?

感谢您阅读此问题:-)

Chr*_*att 5

只需使用Django的默认delete_selected操作作为模板.它使用中间页面,没有复杂的酸洗等.

请参阅:https://github.com/django/django/blob/1.3.1/django/contrib/admin/actions.py