问题描述
我不太确定我是否理解路由在 DRF 中的工作方式。我浏览了文档,但仍然没有掌握差异。
我有以下观点:
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from .models import Order
from .serializer import OrderSerializer
class OrderAPIViewSet(ViewSet):
def post(self,request):
print(request)
这是我的应用程序中的 urls.py
:
from django.urls import include,path
from rest_framework import routers
from .views import OrderAPIViewSet
router = routers.DefaultRouter()
router.register(r'orders',OrderAPIViewSet,basename='order')
urlpatterns = router.urls
这是主要的urls.py
:
from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/',admin.site.urls),path('',include('products.urls')),include('orders.urls'))
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
但是当我尝试通过一个简单的测试访问 orders
端点时:
ORDERS_URL = reverse('orders')
class PublicOrderApiTests(TestCase):
"""
Test the public facing Order API
"""
def setUp(self):
self.client = APIClient()
def test_sample(self):
data = {
"product_id": 1,"price": 5.80
}
res = self.client.post(ORDERS_URL,data)
print(res)
我收到以下错误:
django.urls.exceptions.NoReverseMatch:未找到“订单”的反转。 'orders' 不是有效的视图函数或模式名称。
我做错了什么?产品的端点工作正常,但不适用于订单。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)