Django REST Swagger 未显示 POST 方法
Django REST Swagger not showing POST methods
我在使用 Django REST Swagger 时遇到问题。我为使用 DRF 的用户创建了一个简单的视图集(只是为了显示我的问题),其中 AppUser 是我的自定义用户模型并且它没有在我的文档中显示 POST 方法,但我可以用 Postman 调用它并且创建新资源。
我正在使用:
- Django 2.1
- Django-rest-swagger 2.2.0
- Djangorest 框架 3.9.1
这是我的代码:
views.py
class UserViewSet(viewsets.ModelViewSet):
queryset = AppUser.objects.all()
serializer_class = UserSerializer
serializers.py
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = AppUser
fields = '__all__'
urls.py
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',),
}
HTTP 方法 POST、PUT、PATCH 等使用 has_permission() 根据此处定义的权限列表进行检查。
登录后效果很好
编辑:登录问题是,Django-rest-swagger 2.2.0 无法正确使用 JWT 身份验证,因此我降级到 2.1.2。
我在使用 Django REST Swagger 时遇到问题。我为使用 DRF 的用户创建了一个简单的视图集(只是为了显示我的问题),其中 AppUser 是我的自定义用户模型并且它没有在我的文档中显示 POST 方法,但我可以用 Postman 调用它并且创建新资源。
我正在使用:
- Django 2.1
- Django-rest-swagger 2.2.0
- Djangorest 框架 3.9.1
这是我的代码:
views.py
class UserViewSet(viewsets.ModelViewSet):
queryset = AppUser.objects.all()
serializer_class = UserSerializer
serializers.py
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = AppUser
fields = '__all__'
urls.py
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',),
}
HTTP 方法 POST、PUT、PATCH 等使用 has_permission() 根据此处定义的权限列表进行检查。
登录后效果很好
编辑:登录问题是,Django-rest-swagger 2.2.0 无法正确使用 JWT 身份验证,因此我降级到 2.1.2。