gpt4 book ai didi

python - Django REST Swagger 不显示 POST 方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:01:46 24 4
gpt4 key购买 nike

我在使用 Django REST Swagger 时遇到问题。我使用 DRF 为用户创建了一个简单的 View 集(只是为了显示我的问题),其中 AppUser 是我的自定义用户模型,它在我的文档中没有显示 POST 方法,但我可以使用 Postman 调用它并创建新资源.

我正在使用:

  • Django 2.1
  • Django-rest-swagger 2.2.0
  • Djangorestframework 3.9.1

这是我的代码:

views.py

class UserViewSet(viewsets.ModelViewSet):

queryset = AppUser.objects.all()
serializer_class = UserSerializer

序列化器.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)
]

在这里您可以看到我的应用程序文档的样子:

actual API documentation

我想要得到这样的东西:

ideal documentation

我已经尝试了多个有关创建 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。

关于python - Django REST Swagger 不显示 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com