1

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

我希望将在列表视图中预先选择的记录带到新页面,以便我可以遍历它们。

4

1 回答 1

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/")
于 2013-01-14T17:45:31.740 回答