gpt4 book ai didi

django - Django管理员默认过滤器

转载 作者:行者123 更新时间:2023-12-03 11:47:40 26 4
gpt4 key购买 nike

我知道我已经设法做到了,但是不记得如何也找不到关于此的任何文档。

默认情况下,如何在管理员的对象列表 View 上应用过滤器?

我有一个应用程序,其中列出了引号,并且这些引号具有状态(例如:已接受,已拒绝,保留中..)。

我希望默认情况下将过滤器设置为status ='accepted'。

最佳答案

更可重用的方法:

class DefaultFilterMixIn(admin.ModelAdmin):
def changelist_view(self, request, *args, **kwargs):
from django.http import HttpResponseRedirect
if self.default_filters:
try:
test = request.META['HTTP_REFERER'].split(request.META['PATH_INFO'])
if test and test[-1] and not test[-1].startswith('?'):
url = reverse('admin:%s_%s_changelist' % (self.opts.app_label, self.opts.module_name))
filters = []
for filter in self.default_filters:
key = filter.split('=')[0]
if not request.GET.has_key(key):
filters.append(filter)
if filters:
return HttpResponseRedirect("%s?%s" % (url, "&".join(filters)))
except: pass
return super(DefaultFilterMixIn, self).changelist_view(request, *args, **kwargs)

然后在您的ModelAdmin上定义一个default_filters:
class YourModelAdmin(DefaultFilterMixIn):
....
default_filters = ('snapshot__exact=0',)

关于django - Django管理员默认过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3069825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com