У меня есть простой фильтр:
class ContentFilter(filters.FilterSet):
app = filters.UUIDFilter(required=True)
...
Я использовал его на простом ModelViewSet
class ContentView(ModelViewSet):
"""View for Content"""
serializer_class = ContentSerializer
filterset_class = ContentFilter
Но когда я пытаюсь получить / contents /: id /, я получаю ошибку:
{
"app": [
"This field is required."
]
}
Итак, мой вопрос. Как я могу установить required=True
только для моего list
действия?
Мое решение:
def filter_queryset(self, queryset):
"""We need display filter only on list request, otherwise we get error on /id/ requests about app is required"""
if self.action != 'list':
self.filterset_class = None
return super().filter_queryset(queryset)
Какое лучшее решение, может быть, я могу настроить его внутри класса фильтра?