我正在尝试将一个简单的方法注册到 DRF 中我遇到了一些问题。 API Explorer 中路线未显示。
这可能是我缺少的一些简单的东西..
如何让注册路由显示在 API 中?
Resuts (empty)
GET /api/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{}
Urls
from django.conf.urls import url, include
from django.contrib import admin
from rest_framework import routers
from rest_framework_jwt.views import obtain_jwt_token
from reservations.views.homepage import HomepageView
from users.views import UserViewSet
""" API routes
"""
router = routers.DefaultRouter()
router.register(r'test', UserViewSet, base_name='users')
""" Route patterns
"""
urlpatterns = [
url(r'^$', HomepageView.as_view(), name='homepage'),
url(r'^api/', include(router.urls)),
url(r'^api-token-auth/', obtain_jwt_token),
url(r'^admin/', admin.site.urls),
]
Viewset
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from rest_framework import viewsets
from rest_framework.response import Response
class UserViewSet(viewsets.ViewSet):
def register(self, request):
return Response({
'status': 'User registered'
})
最佳答案
ViewSet 对于每种方法(GET、POST、PUT 等)都有一些特定的方法,例如列表、详细信息、创建、更新等。您应该使用这些方法。 Api 资源管理器根据这些方法来决定您的 View 允许哪种方法。可以看这些方法here .
就您而言,我想您想创建新用户。所以你应该使用这样的 create 方法。
class UserViewSet(viewsets.ViewSet):
def create(self, request, *args, **kwargs):
return Response({
'status': 'User registered'
})
关于python - Django Rest Framework 中的空路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48635936/