我正试图使一个电子商务项目,我已经设置了产品页面,但它应该加载一个产品描述页面后goint到API/产品/2页,例如(2是一个产品ID).views.py:
@api_view(['GET'])
def getProduct(request, pk):
product = None
for i in products:
if i['_id'] == pk:
product = i
break
return Response(product)
urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.getRoutes, name="routes"),
path('products/', views.getProducts, name="products"),
path('prodcucts/<str:pk>/', views.getProduct, name="product"),
]
我已尝试使用int:pk代替str:pk
2条答案
按热度按时间qgzx9mmu1#
首先检查一下你需要的是
<str:pk>
还是<int:pk>
,因为"2"
和2
在Python中的处理方式不同。然后试试这个:
编辑:
路径名
path('prodcucts/<str:pk>/'...
似乎不正确,请检查它。2eafrhcq2#
声明
products = None
,然后使用for循环迭代products
,结果是迭代None
试着这样做:
首先,您需要导入模型。然后,在存储在数据库中的所有这些Product对象中执行
get
查询。get
查询将导致错误(如果未找到匹配对象或找到多个对象)或返回一个对象。如果要允许查找多个对象,请将
get
替换为filter
lookup。也坚持你的
int:pk