Django REST Swagger 未显示 POST 方法

Django REST Swagger not showing POST methods

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

我正在使用:

这是我的代码:

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。