python - Django REST Framework Viewset 返回 404(GET 请求)
问题描述
我正在寻求了解 ViewSet 在 Django REST 框架的上下文中与路由器一起使用时如何补充 URL 路由。当我在 请求收集时api/v2/people/
,会返回 404 响应。我不清楚视图在浏览器中呈现并获得 200 状态代码作为响应的一部分还需要什么?
网址.py
from django.urls import path, include
from rest_framework import routers
from people import views
router = routers.SimpleRouter()
router.register(r'people', views.PersonViewSet, basename="people")
urlpatterns = [
path('admin/', admin.site.urls),
path('api-path/', include('rest_framework.urls')),
path('api/v2/people/', include(router.urls), name="people")
]
人/views.py
from rest_framework.viewsets import ViewSet
from .models import Person
from .serializers import PersonSerializer
class PersonViewSet(ViewSet):
def list(self, request):
queryset = Person.objects.all()
serializer = PersonSerializer(queryset, many=True)
return Response(serializer.data)
解决方案
根据您的配置,它应该尝试这个 URLapi/v2/people/people/
或者改变
urlpatterns = [
path('admin/', admin.site.urls),
path('api-path/', include('rest_framework.urls')),
path('api/v2/', include(router.urls), name="people") # removed `people/`
]
然后访问api/v2/people/
推荐阅读
- c# - WPF 等效于 Winform 的 KeyEventArgs - 使用特定键调用 KeyDown 事件
- python - ValueError:检查输入时出错:预期dense_16_input有2维,但得到的数组形状为(60000、28、28)
- ruby-on-rails - Ruby on Rails - 防止 rails 在注册之前创建会话 cookie
- javascript - React Native:如何在客户端存储聊天记录?
- node.js - 在 Elastic Beanstalk 和 AWS Lambda 上更新 nodejs API
- java - 是否存在适用于各种不同历史事件的现有数据结构?
- javascript - 强制 iframe 中的“http”链接在新标签页中打开
- spring-boot - org.springframework.messaging.converter.MessageConversionException:无法转换
- javascript - use ajax get value outside ajaxstatement
- npm - Nodejs:发出请求时证书链中的自签名证书错误