如何在Django Swagger文档中使用查询参数? [英] How to use query parameters in Django Swagger Documentation?

查看:279
本文介绍了如何在Django Swagger文档中使用查询参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我们有这样的URL- localhost:8000 / object?name = STH 。任何人都知道如何显示名称对象等于 STH 使用Django Swagger文档吗?

Let's assume that we have for example such URL - localhost:8000/object?name=STH. Anyone have an idea how can I display object with name equals STH using Django Swagger Documentation?

class ObjectList(GenericAPIView):

    serializer_class = ObjectSerializer

    def get(self, request):
        try:
            t = request.GET['sth']
            object = Object.objects.filter(sth=sth)
        except:
            object = Object.objects.all()
        serializer = ObjectSerializer(object, many=True)
        return Response(serializer.data)

我正在尝试这种方式,但是在我的Swagger中看不到:

I am trying in this way but it's not visible in my Swagger:

URL: url(r'^ object-data $',views.ObjectList.as_view()),

class ObjectList(GenericAPIView):
    serializer_class = ObjectSerializer
    filter_backends = (DjangoFilterBackend, )
    filter_fields = ('sth', )

我的Swagger外观如​​下图所示。我想拥有 sth 而不是页面。我不知道为什么它在那里。

At this moment my Swagger looks as shown below. I would like to have sth instead of pages. I have no idea why it is there.

推荐答案

我正在使用 djang-filter 软件包,它与rest框架很好地集成在一起,并且还支持swagger文档,您会在sfagger中为该端点自动生成过滤列。

I am using djang-filter package that integrates nicely with rest framework and it also has support for swagger docs, you get auto-generated filtering columns for that endpoint in swagger.

from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.generics import ListAPIView

class ObjectList(ListAPIView):
    serializer_class = ObjectSerializer
    queryset = Object.objects.all()
    filter_backends = (DjangoFilterBackend, )
    filter_fields = ('sth', )

这篇关于如何在Django Swagger文档中使用查询参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆