gpt4 book ai didi

django - 管理员中的 list_filter

转载 作者:行者123 更新时间:2023-12-01 02:24:33 24 4
gpt4 key购买 nike

DECOM_CHOICES = (
('N', 'No'),
('Y', 'Yes'),
)

class Host(models.Model):
hostname = models.CharField(max_length=36, unique=True)
decommissioned = models.CharField(max_length=1, choices=DECOM_CHOICES, default='N')
ip_address = models.IPAddressField()
def __unicode__(self):
return self.hostname

class HostAdmin(admin.ModelAdmin):
fieldsets = [
('Host Info', {'fields': ['hostname','decommissioned','ip_address']}),
list_display = ('hostname', 'ip_address', 'decommissioned')
list_filter = ('decommissioned')

现在有什么方法可以让我将退役过滤器默认设置为 'N' 而不是 'All'

最佳答案

我通过在将请求对象传递给 changelist_view() 之前修改请求对象中的 GET 数据来实现这一点。不优雅,但它有效。

class MyModelAdmin(admin.ModelAdmin):    
def changelist_view(self, request, extra_context=None):
if not request.GET.has_key('decommissioned__exact'):
q = request.GET.copy()
q['decommissioned__exact'] = 'N'
request.GET = q
request.META['QUERY_STRING'] = request.GET.urlencode()
return super(MyModelAdmin,self).changelist_view(request, extra_context=extra_context)

注意:我没有在这里尝试过这个确切的代码,但你应该明白了。

关于django - 管理员中的 list_filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856837/

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