在admin.py中,我设置了一个名为export的操作,如下所示......
class RecipientAdmin(admin.ModelAdmin):
actions = [export]
export.short_description = "Export Stuff"
admin.site.register(Recipient, RecipientAdmin)
这会运行以下功能......
def export(modeladmin, request, queryset):
return HttpResponseRedirect("/export/")
我的问题是......
如何使用HttpResponseRedirect将查询集传递到另一个视图/页面?还是有其他方法我应该尝试这样做?
我希望列表视图中预先选择的记录被带到新页面,以便我可以迭代它们。
答案 0 :(得分:2)
有两种方法可以做到这一点。
1>如果你想要的只是按模型中的某些字段进行过滤,那么你可以在url中传递过滤器。示例:'/ export /?id_ gte = 3& status _exact = 3'
2 - ;在导出操作功能中,您可以在会话中设置一些变量或整个查询集,然后在导出视图中检查它
def export(modeladmin, request, queryset):
"""
not sure if this will work
"""
request.session['export_querset'] = queryset
"""
if above does not work then just set this and check for it in view and u can make the queryset again if this is set
"""
request.session['export_querset'] = 1
return HttpResponseRedirect("/export/")