Django:使用HttpResponseRedirect将查询集传递到另一个视图

时间:2013-01-14 17:27:53

标签: python django

在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将查询集传递到另一个视图/页面?还是有其他方法我应该尝试这样做?

我希望列表视图中预先选择的记录被带到新页面,以便我可以迭代它们。

1 个答案:

答案 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/")