You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django电商项目单个产品页面无法加载问题求助

问题解决:产品详情页无法加载的原因及修复

核心问题分析

你遇到的问题根源在于路由路径拼写错误,同时需要确保参数类型与数据匹配:

  • 路由路径拼写错误:urls.py中产品详情的路由写的是prodcucts/<str:pk>/,多了一个字母c,而你访问的路径是api/products/2,路径不匹配导致请求无法命中对应的视图函数。
  • 参数类型匹配:如果你的products列表中_id是整数类型,使用<int:pk>才能保证参数类型一致,避免字符串与整数比较不相等的问题。

修复步骤

1. 修正路由路径

将urls.py中的错误路径修正为正确拼写,并使用<int:pk>确保参数类型匹配:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.getRoutes, name="routes"),
    path('products/', views.getProducts, name="products"),
    # 修正拼写错误,并使用<int:pk>匹配整数ID
    path('products/<int:pk>/', views.getProduct, name="product"),
]

2. 验证数据类型匹配

确认products列表中每个元素的_id为整数类型,此时视图中的比较逻辑i['_id'] == pk可以正常工作。如果_id是字符串类型,需要将视图中的pk转为字符串再比较:

@api_view(['GET'])
def getProduct(request, pk):
    product = None
    for i in products:
        # 如果_id是字符串,将pk转为字符串后比较
        if i['_id'] == str(pk):
            product = i
            break

    return Response(product)

验证

修改完成后重新启动服务,访问api/products/2即可正常加载对应产品的详情页。

内容的提问来源于stack exchange,提问作者Myrodis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:35:40