Я пытаюсь, чтобы Swagger показал параметры URL GET для конкретной конечной точки.
Параметры должны быть доступны для всех действий GET на моем ModelViewSet
, однако я могу отображать их только для действия list
, но не для действия retrieve
.
Вот как я это делаю:
class SomeFilter(BaseFilterBackend):
def get_schema_fields(self, view):
print(view.action)
if view.action in ['list', 'retrieve']:
return [
coreapi.Field(
name='my-name',
location='query',
required=False,
schema=coreschema.Boolean(),
description="Include(true)/Exclude(false) some query fields"
)
]
else:
return []
class SomeMixin:
filter_backends = (SomeFilter,)
def filter_queryset(self, queryset):
return queryset
... # Some other irrelevant stuff...
Еще раз, я успешно получаю параметр действия list
, чтобы показать (и работать), но не получить.
URL, которые я пытаюсь вызвать: (для справки):
http://my-api/objects/?my-name=[true, false]
(это работает)
и
http://my-api/objects/{id}/?my-name=[true, false]
(Swagger не поднимает это).
Также в качестве примечания я знаю, что вызовы обеих точек возможны и получают желаемые результаты (потому что я пробовал с другими инструментами).
Любая помощь очень ценится, спасибо!