Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django REST招摇不显示POST方法_Python_Django_Django Rest Framework_Django Swagger - Fatal编程技术网

Python Django REST招摇不显示POST方法

Python Django REST招摇不显示POST方法,python,django,django-rest-framework,django-swagger,Python,Django,Django Rest Framework,Django Swagger,我对Django REST招摇过市有意见。我已经为使用DRF的用户创建了一个简单的视图集(只是为了显示我的问题),其中AppUser是我的自定义用户模型,它没有在我的文档中显示POST方法,但我可以使用Postman调用它并创建一个新的资源 我正在使用: Django 2.1 Django rest swagger 2.2.0 Djangorestframework 3.9.1 这是我的密码: 视图.py class UserViewSet(viewsets.ModelViewSet):

我对Django REST招摇过市有意见。我已经为使用DRF的用户创建了一个简单的视图集(只是为了显示我的问题),其中AppUser是我的自定义用户模型,它没有在我的文档中显示POST方法,但我可以使用Postman调用它并创建一个新的资源

我正在使用:

  • Django 2.1
  • Django rest swagger 2.2.0
  • Djangorestframework 3.9.1
这是我的密码:

视图.py

class UserViewSet(viewsets.ModelViewSet):

    queryset = AppUser.objects.all()
    serializer_class = UserSerializer
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = AppUser
        fields = '__all__'
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) 
]
序列化程序.py

class UserViewSet(viewsets.ModelViewSet):

    queryset = AppUser.objects.all()
    serializer_class = UserSerializer
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = AppUser
        fields = '__all__'
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) 
]
url.py

class UserViewSet(viewsets.ModelViewSet):

    queryset = AppUser.objects.all()
    serializer_class = UserSerializer
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = AppUser
        fields = '__all__'
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