在成功地实现了crispy-forms
和django-tables 2
之后,我开始使用django-filter
实现表中的过滤,我简直抓狂了。
首先,我发现它的文档要糟糕得多,可能这就是为什么我找不到我需要的信息的原因。
我想在窗体中有一个下拉列表,我可以用它来选择天气来显示All users
,Superusers
,Normal users
。
因此,我已经从BooleanFilter
转到了具有自定义选择的ChoiceFilter
。
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
来更改选项的值?
发布于 2018-09-11 03:24:10
您需要在每个the docs here的ChoiceFilter
上将empty_label
设置为None
is_superuser = filters.ChoiceFilter(
field_name='is_superuser',
lookup_expr='exact',
choices=SUPERUSER_CHOICES,
empty_label=None
)
要更好地理解this answer的empty_label
,请参阅Django。
https://stackoverflow.com/questions/51935885
复制相似问题