gpt4 book ai didi

python - django SimpleListFilter

转载 作者:行者123 更新时间:2023-12-04 19:45:05 30 4
gpt4 key购买 nike

假设我有一个像这样的模型:

# models.py

class Customer(models.Model):
customer_name=models.CharField(max_length=50)
licence_key=models.CharField(max_length=100)
exp_date=models.DateTimeField(blank=True, null=True)

def __unicode__(self):
return self.customer_name

我想在管理站点中有一个自定义列表过滤器,该过滤器向客户显示其 exp_date已通过。例如,它应该具有两个参数 validinvalid,并将 exp_date与今天的日期进行比较并显示结果。我读过它可以通过simplelistfilter完成,但我不知道如何做。

谢谢你,我的英语不好意思

最佳答案

试试下面的代码。它将为您提供有效/无效客户列表的过滤条件。

class ExpiryDateFilter(admin.SimpleListFilter):

title = _('Title name')

parameter_name = 'exp_date'

def lookups(self, request, model_admin):
"""
List of values to allow admin to select
"""
return (
('valid', _('All Valid')),
('invalid', _('All Invalid')),
)

def queryset(self, request, queryset):
"""
Return the filtered queryset
"""

if self.value() == 'valid':
return queryset.filter(exp_date__gt=datatime.datatime.now())
elif self.value() == 'invalid':
return queryset.filter(exp_date__lt=datatime.datatime.now())
else:
return queryset

在admin类中,添加一个类似于以下内容的列表过滤器。
class youModelAdminClass(admin.ModelAdmin):

list_filter = [ExpiryDateFilter]
list_display = ['CustomerValidity']

然后向您的Django模型注册模型管理员。
admin.site.register(ModelClassName, youModelAdminClass)

希望这会有所帮助。

关于python - django SimpleListFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36527956/

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