Django rest framework 如何在Django中的一条路由中使用不同的权限?

Django rest framework 如何在Django中的一条路由中使用不同的权限?,django-rest-framework,Django Rest Framework,我正在尝试创建一个Django路由来创建用户。其中一个请求应未经验证,其他请求应经过验证 我试图覆盖这些方法,但随后UI就崩溃了 对我来说,官方教程中有太多的文本,我不需要使用Web框架。 我想要一些简单的路由,而不是框架提供的一些奇特的CRUD。大部分我根本不需要的积垢 我想创建一个路由来创建一个用户,并使其他路由只经过身份验证。 我想出了一些可行的方法(至少UI不会崩溃): views.py: from django.contrib.auth.models import User from

我正在尝试创建一个Django路由来创建用户。其中一个请求应未经验证,其他请求应经过验证

我试图覆盖这些方法,但随后UI就崩溃了

对我来说,官方教程中有太多的文本,我不需要使用Web框架。 我想要一些简单的路由,而不是框架提供的一些奇特的CRUD。大部分我根本不需要的积垢

我想创建一个路由来创建一个用户,并使其他路由只经过身份验证。 我想出了一些可行的方法(至少UI不会崩溃):

views.py

from django.contrib.auth.models import User
from rest_framework import viewsets
from rest_framework import permissions
from tutorial.quickstart.serializers import UserSerializer
from rest_framework import mixins

class UserNoAuthViewSet(mixins.CreateModelMixin,
                        viewsets.GenericViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = [] ############################## allowed for non-users

class UserAuthViewSet(mixins.RetrieveModelMixin,
                      mixins.UpdateModelMixin,
                      mixins.DestroyModelMixin,
                      mixins.ListModelMixin,
                      viewsets.GenericViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = [permissions.IsAuthenticated] ############ users-only
from django.contrib import admin
from django.urls import include, path

from rest_framework import routers
from tutorial.quickstart import views_user

router = routers.DefaultRouter()
router.register(r'users', views_user.UserNoAuthViewSet)
router.register(r'users', views_user.UserAuthViewSet)

urlpatterns = [
    #path('admin/', admin.site.urls),
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
url.py

from django.contrib.auth.models import User
from rest_framework import viewsets
from rest_framework import permissions
from tutorial.quickstart.serializers import UserSerializer
from rest_framework import mixins

class UserNoAuthViewSet(mixins.CreateModelMixin,
                        viewsets.GenericViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = [] ############################## allowed for non-users

class UserAuthViewSet(mixins.RetrieveModelMixin,
                      mixins.UpdateModelMixin,
                      mixins.DestroyModelMixin,
                      mixins.ListModelMixin,
                      viewsets.GenericViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = [permissions.IsAuthenticated] ############ users-only
from django.contrib import admin
from django.urls import include, path

from rest_framework import routers
from tutorial.quickstart import views_user

router = routers.DefaultRouter()
router.register(r'users', views_user.UserNoAuthViewSet)
router.register(r'users', views_user.UserAuthViewSet)

urlpatterns = [
    #path('admin/', admin.site.urls),
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
如何更改这两个路由,以便它们正确显示在UI中并预览创建的用户?创建工作正常,但预览不正常。我认为路由器不包括第二条路线