[英]drf-yasg/drf-spectacular - description for filter parameters
编辑:这个问题最初是在使用yasg
时发布的,但我切换到spectacular
所以两种解决方案都可以。
我很好奇是否有办法告诉yasg
或spectacular
向django-filter
参数添加描述。
我想告诉开发人员, parent
字段是Country
model pk
。
Model
class County(AddressModel):
parent = models.ForeignKey('Country', verbose_name='Krajina', related_name='counties', on_delete=models.PROTECT, help_text='Krajina')
class Meta:
verbose_name = 'Kraj'
verbose_name_plural = 'Kraje'
筛选
class CountyFilter(FilterSet):
class Meta:
model = County
fields = {
'name': ['icontains'],
'parent': ['exact']
}
串行器
class CountySerializer(serializers.ModelSerializer):
class Meta:
model = County
fields = ['id', 'name']
看法
class AddressCountyAutocompleteView(ListAPIView):
serializer_class = CountySerializer
filter_backends = [DjangoFilterBackend]
filterset_class = CountyFilter
queryset = County.objects.all()
pagination_class = AddressAutocompletePagination
def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)
这是自动生成的 swagger:
是否可以在不编写自定义方案的情况下做到这一点?
这个答案是壮观的。 帮助文本必须附在某处。 如果你想在过滤器上使用它,你需要明确设置过滤器字段以附加帮助文本:
class ProductFilter(FilterSet):
number_id = NumberFilter(help_text='some injected help text')
class Meta:
model = Product
或者,您可以使用覆盖检测到的参数
@extend_schema_view(
list=extend_schema(parameters=[
OpenApiParameter(name='name__icontains', description="some help text")
])
)
class AddressCountyAutocompleteView(ListAPIView):
恕我直言,第一选择会更强大。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.