我有以下django-filter(https://github.com/alex/django-filter/)过滤器:
class ApplicationFilter(django_filters.FilterSet):
status = django_filters.ChoiceFilter(choices=STATUS2,)
状态包含以下元组列表:
STATUS_CHOICES = (
( '', u'All'),
( 'NEW', u'New'),
( 'SUBMIT', u'Submit'),
( 'CANCEL', u'Cancel'),
)
现在,我想为该过滤器设置一个不同于空过滤器的初始值(全部) . 所以我尝试了以下几件事,但都没有成功:
一世 . 将初始参数添加到字段: status = django_filters.ChoiceFilter(choices=STATUS2, initial = 'NEW' )
或使用数组 status = django_filters.ChoiceFilter(choices=STATUS2, initial = ['NEW'] )
. 使用默认初始值呈现的表单 .
II . 修改表单的 __init__
:
def __init__(self, *args, **kwargs):
super(ApplicationFilter, self).__init__(*args, **kwargs)
self.form.initial['status']='NEW'
self.form.fields['status'].initial='NEW'
- 再次使用默认初始值(全部)呈现的表单...还尝试将值设置为
['NEW']
- 再次没有运气 .
有谁知道应如何处理?我正在使用最新的(来自github)版本的django-filter .
TIA
2 回答
这个答案可能适合你:Set initial value with django-filters?
在我看来,我这样做:
试试这个: