Параметры URL GET, отображаемые только для `list`, Swagger-DRF - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь, чтобы 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 не поднимает это).

Также в качестве примечания я знаю, что вызовы обеих точек возможны и получают желаемые результаты (потому что я пробовал с другими инструментами).

Любая помощь очень ценится, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...