让Django管理员在发布后记住我的参数
我有一个困扰了我一段时间的问题。我想在django admin中使用日期来查看特定日期之间的条目。 为此,我为这个模型定制了changelist.html,并在其中添加了一个表单。发布时,我会像这样重写queryset方法让Django管理员在发布后记住我的参数,django,search,parameters,django-admin,get,Django,Search,Parameters,Django Admin,Get,我有一个困扰了我一段时间的问题。我想在django admin中使用日期来查看特定日期之间的条目。 为此,我为这个模型定制了changelist.html,并在其中添加了一个表单。发布时,我会像这样重写queryset方法 def queryset(self, request): qs = super(ModelAdmin, self).queryset(request) if request.POST.has_key('date1'): return qs.f
def queryset(self, request):
qs = super(ModelAdmin, self).queryset(request)
if request.POST.has_key('date1'):
return qs.filter(startdate__gte=request.POST['date1']).filter(startdate__lte=request.POST['date2'])
return qs
这很有效,但只是一个小问题。例如,如果我选择以任何方式对结果进行排序,则会忘记参数
如果我在url中直接输入浏览器,而不是这种类型,那么它看起来是这样的
def queryset(self, request):
qs = super(ModelAdmin, self).queryset(request)
if request.POST.has_key('date1'):
return qs.filter(startdate__gte=request.POST['date1']).filter(startdate__lte=request.POST['date2'])
return qs
http//localhost/admin/some/model/?startdate\uuu gte=2010-01-01&startdate\uuu lte=2010-12-30
之后我可以按自己的意愿进行分类,因为它们会像这样粘在一起
http//localhost/admin/some/model/?o=5&ot=asc&startdate\uuuu lte=2010-12-30&startdate\uuu gte=2010-01-01
我需要使用filterspec来解决这个问题吗
谢谢你 Django项目中有一个变更请求,要求提供此功能 它正在等待有人在提交建议的补丁之前为其编写测试,因此您可以这样做,也可以在页面底部附近下载建议的补丁并使用它