首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django-使用自定义值过滤布尔型字段

Django-使用自定义值过滤布尔型字段
EN

Stack Overflow用户
提问于 2018-08-21 01:35:27
回答 1查看 1.3K关注 0票数 2

在成功地实现了crispy-formsdjango-tables 2之后,我开始使用django-filter实现表中的过滤,我简直抓狂了。

首先,我发现它的文档要糟糕得多,可能这就是为什么我找不到我需要的信息的原因。

我想在窗体中有一个下拉列表,我可以用它来选择天气来显示All usersSuperusersNormal users

因此,我已经从BooleanFilter转到了具有自定义选择的ChoiceFilter

代码语言:javascript
复制
class UserFilter(filters.FilterSet):
    SUPERUSER_CHOICES = {
        ('', 'All'),
        ('True', 'Superusers'),
        ('False', 'Normal users')
    }
    username = filters.CharFilter(field_name='username', lookup_expr='icontains')
    is_superuser = filters.ChoiceFilter(field_name='is_superuser', lookup_expr='exact',
                                        choices=SUPERUSER_CHOICES,)
    test = filters.Filter

    class Meta:
        model = User
        fields = ['username', 'is_superuser']

这就是我得到的:

为什么这些破折号会在那里?如何摆脱它们?

也许我甚至不需要使用ChoiceFilter来更改选项的值?

EN

回答 1

Stack Overflow用户

发布于 2018-09-11 03:24:10

您需要在每个the docs hereChoiceFilter上将empty_label设置为None

代码语言:javascript
复制
is_superuser = filters.ChoiceFilter(
    field_name='is_superuser', 
    lookup_expr='exact', 
    choices=SUPERUSER_CHOICES, 
    empty_label=None
)

要更好地理解this answerempty_label,请参阅Django。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51935885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档