使用Django 过滤器时如何添加初始/默认值?
例如,这样的事情 initial=False
class UserFilter(django_filters.FilterSet):
archive = django_filters.BooleanFilter(initial=False)
class Meta:
model = User
fields = ['archive']
Run Code Online (Sandbox Code Playgroud)
我已经厌倦了覆盖,__init__但这似乎不起作用。
对于 DRF,您可以尝试覆盖__init__:
def __init__(self, *args, **kwargs):
kwargs['data']._mutable = True
if 'archive' not in kwargs['data']:
kwargs['data']['archive'] = False
kwargs['data']._mutable = False
super(UserFilter, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
但你应该阅读django-filter.readthedocs.io...using-initial-values-as-defaults
您可以尝试覆盖以下__init__方法UserFilter:
def __init__(self, *args, **kwargs):
super(UserFilter, self).__init__(*args, **kwargs)
self.form.initial['archive'] = False
Run Code Online (Sandbox Code Playgroud)