我的目标是在Django管理站点中编写“导出选择为CSV”操作。
阅读link1后,我认为将导出请求重定向到自定义视图是个好主意。
以下是问题:如何将当前queryset
传递给中间页?
如果您选择所有实例,则link1中的方法无效(请参阅link2)。
为了在中间页面中获取查询集,我有两个选择:
pickle
queryset.query
并将其发送到?qs={picked_qs_query}
的中间页面,然后在中间页面中重新创建queryset
。在我看来,这是一个很好的解决方案,并使中间页面具有幂等性。当然,我可以忽略中间页面并在“导出选择为CSV”操作中返回CSV内容,但这真的是一个好主意吗?
感谢您阅读此问题: - )
答案 0 :(得分:5)
只需使用Django的默认delete_selected
操作作为模板。它使用中间页面,没有复杂的酸洗等。
请参阅:https://github.com/django/django/blob/1.3.1/django/contrib/admin/actions.py
答案 1 :(得分:1)
以后在视图中生成QuerySet有问题吗?如果没有,那就这样做;
查看部分:
管理员部分: