Swagger UI sendet boolesche Parameter in 'true/false' -Form, während boolesches Django-Filter-Feld True/False (Großbuchstaben) erwartet. Deshalb, wenn ich durch swagger abfrage, hat das Feld is_published keine Wirkung.Swagger boolescher Parameterwert True/False anstelle von true/false und django_filters
{{api_url}}/api/v1/games/?limit=10&offset=0&is_published=true
{{api_url}}/api/v1/games/?limit=10&offset=0&is_published=false
Filterfeld ist definiert als
is_published = BooleanFilter(name='versions__is_published')
vollständige Definition
class GameFilter(FilterSet):
"""Custom filter for ``GameViewSet``.
Defines custom filter for ``genres`` field (based on TaggableManager).
"""
is_published = BooleanFilter(name='versions__is_published')
class Meta:
model = Game
fields = {
'platforms': ['exact'],
'ages': ['exact'],
'developers': ['exact'],
'genres': ['exact'],
'created': ['gt', 'lt']
}
Swagger Definition des Verfahrens
get:
summary: Get list of games
operationId: getGamesList
parameters:
- $ref: '../../parameters.yaml#/Offset'
- $ref: '../../parameters.yaml#/Limit'
- $ref: '../../parameters.yaml#/PlatformsFilter'
- $ref: '../../parameters.yaml#/DevelopersFilter'
- $ref: '../../parameters.yaml#/GenresFilter'
- $ref: '../../parameters.yaml#/AgesFilter'
- $ref: '../../parameters.yaml#/SearchFilter'
- $ref: '../../parameters.yaml#/Order'
- name: is_published
in: query
type: boolean
required: false
default: true