我遇到了Django REST Swagger的问题。我为使用DRF的用户创建了一个简单的视图集(仅用于显示我的问题),其中AppUser是我的自定义用户模型,并且它没有在我的文档中显示POST方法,但我可以使用Postman调用它并创建新资源。
我正在使用:
这是我的代码:
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。