2

我已将 swagger 与 django rest 框架集成,但 swagger 文档不会创建输入框来发布数据以进行发布请求。

我的解析器设置,

REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
    'rest_framework.parsers.JSONParser',
    'rest_framework.parsers.FormParser',
    'rest_framework.parsers.MultiPartParser',
),

}

这是我的视图类片段,`

class TeamViewList(APIView, BaseView):
"""
    Class based view to handle all operations related to Team Model
"""
logger = logging.getLogger(__name__)

def get_serializer(self):
    return serializers.TeamSerializer

def post(self, request):
    """
    To create a new  team
    """
    try:

网址映射:

urlpatterns = [
url(r'^role/$', rest_views.UserTeamRoleView.as_view(), name='user_team_role'),
url(r'^teams/$', rest_views.TeamViewList.as_view(), name='team_list'),
url(r'^teams/(?P<name>[_a-zA-Z0-9\-]+)$', rest_views.TeamViewDetail.as_view(), name='team_detail'),

]

我的招摇文档生成, 在此处输入图像描述

无法将 json 有效负载作为输入传递给发布请求。

4

2 回答 2

-1

您必须PARSER为您的视图选择一个或添加DEFAULT_PARSER_CLASSES到您的 DRF 设置中才能在 Swagger 上查看表单或 json 对象。

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_FILTER_BACKENDS': (
        'rest_framework.filters.SearchFilter',
        'rest_framework.filters.OrderingFilter',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'helpers.authentication.TokenAuthentication',
    ),
    'DEFAULT_MODEL_SERIALIZER_CLASS': (
        'rest_framework.serializers.ModelSerializer',
    ),
    'DEFAULT_PARSER_CLASSES': (
        'rest_framework.parsers.JSONParser',
        'rest_framework.parsers.FormParser',
        'rest_framework.parsers.MultiPartParser',
    ),
}
于 2017-03-22T12:23:34.283 回答
-1

下面的方法应该返回一个实例而不是一个类:

def get_serializer(self): return serializers.TeamSerializer

3.6.2顺便说一句,即使使用实例而不是类,我在 DRF 上也失败了。但是,这里似乎已修复

于 2017-04-27T22:10:58.017 回答