Django REST Swagger没有显示POST方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django REST Swagger没有显示POST方法相关的知识,希望对你有一定的参考价值。
我遇到了Django REST Swagger的问题。我为使用DRF的用户创建了一个简单的视图集(仅用于显示我的问题),其中AppUser是我的自定义用户模型,并且它没有在我的文档中显示POST方法,但我可以使用Postman调用它并创建新资源。
我正在使用:
- Django 2.1
- Django-rest-swagger 2.2.0
- Djangorestframework 3.9.1
这是我的代码:
views.朋友
class UserViewSet(viewsets.ModelViewSet):
queryset = AppUser.objects.all()
serializer_class = UserSerializer
serialize认识.朋友
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = AppUser
fields = '__all__'
URLs.朋友
from django.conf.urls import url, include
from rest_framework.routers import SimpleRouter
from rest_framework_swagger.views import get_swagger_view
import app.views as app
# creating router
router = SimpleRouter()
router.register(r'users', app.UserViewSet)
schema_view = get_swagger_view(title='My app API')
# register urls
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^docs', schema_view)
]
在这里,您可以看到我的应用文档的样子:
我想得到这样的东西:
我已经尝试了多个关于创建Swagger文档的教程,我在用户模型上尝试了它,但我仍然只获得了GET请求。我究竟做错了什么?
谢谢您的帮助。
答案
我已经明白了。我还没有正确登录,因此我没有根据settings.py中DRF的DEFAULT_PERMISSION_CLASSES设置中列出的权限进行身份验证。
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES':
('rest_framework.permissions.IsAuthenticatedOrReadOnly',),
}
使用has_permission()对那里定义的权限列表检查HTTP方法POST,PUT,PATCH等。
登录后效果很好。
编辑:登录问题是,Django-rest-swagger 2.2.0无法正常使用JWT身份验证,所以我降级到2.1.2。
以上是关于Django REST Swagger没有显示POST方法的主要内容,如果未能解决你的问题,请参考以下文章