How to customise FILTER_DEFAULTS (e.g. for FileField
)
#1478
-
When using django-filter with Django-Rest-Framework, I was confused because I could not use django-filter to filter on a
Code detailsclass Questionnaire(models.Model):
file = models.FileField(upload_to=questionnaire_path) class QuestionnaireFilter(FilterSet):
class Meta:
model = Questionnaire
fields = ['file'] class QuestionnaireViewset(viewsets.ModelViewSet):
filterset_class = QuestionnaireFilter I am confused because this seems a common use case and could not find any information about it except adding Code details with filter_overridesclass QuestionnaireFilter(FilterSet):
class Meta:
model = Questionnaire
fields = ['file']
filter_overrides = {
models.FileField: {
'filter_class': CharFilter,
'extra': lambda f: {'lookup_expr': 'exact'},
},
} Thank you and have a good day |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
There's no
You can declare a base django-filter/django_filters/rest_framework/filterset.py Lines 17 to 25 in c906cf3 I hope that helps. |
Beta Was this translation helpful? Give feedback.
Hi @clement-escolano.
There's no
FileFilter
.You can declare a base
FilterSet
subclass for your project. Inheritance of internalMeta
classes gets sticky, so adjustingFILTER_DEFAULTS
is likely the way to go. See how therest_framework.FilterSet
class does it:django-filter/django_filters/rest_framework/filterset.py
Lines 17 to 25 in c906cf3