gpt4 book ai didi

Django admin list_filter - 过滤字段为空(无或空字符串 "")

转载 作者:行者123 更新时间:2023-12-02 03:49:49 25 4
gpt4 key购买 nike

在 models.py 中我有:

class User(modals.Model):
name = models.CharField(max_length=255)
image = models.ImageField(blank=True, null=True)

在 admin.py 中:

class UserAdmin(admin.ModelAdmin):
list_filter = ['image']

admin.site.register(User, UserAdmin)

我只想通过是否有图像(空或空字符串)来过滤用户

但是 django 显示按图像网址过滤 =)

有没有办法让 list_filter = ['image'] 表现得像 bool 字段?

非常感谢您的建议!

最佳答案

admin.py

class ImageListFilter(admin.SimpleListFilter):

title = _('Has photo')

parameter_name = 'has_photo'

def lookups(self, request, model_admin):

return (
('yes', _('Yes')),
('no', _('No')),
)

def queryset(self, request, queryset):

if self.value() == 'yes':
return queryset.filter(image__isnull=False).exclude(image='')

if self.value() == 'no':
return queryset.filter(Q(image__isnull=True) | Q(image__exact=''))


class UserAdmin(admin.ModelAdmin):

list_filter = [ImageListFilter]

关于Django admin list_filter - 过滤字段为空(无或空字符串 ""),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799694/

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