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

Django项目'allproduct'反向解析错误及后台上传图片不显示问题求助

问题1 反向解析找不到allproduct错误

错误原因

你的shop应用urls.py中定义的两个路由命名分别为allproductcat和product_by_catagory,不存在命名为allproduct的路由,但你在category.html模板中使用了{% url 'shop:allproduct' %}进行反向解析,因此触发报错。

解决方案

修改shop/urls.py中的路由命名,将首页路由的name修改为allproduct即可:

from django.urls import path
from . import views
app_name='shop'
urlpatterns = [
    path('',views.allproduct,name='allproduct'),
    path('<slug:c_slug>/',views.allproduct,name='product_by_catagory')
]

同时修正模板中字段拼写错误:你在模型中定义的分类描述字段为description,模板中误写为discription,同步修改即可避免描述内容不显示的问题。

问题2 后台上传图片前端无法显示

错误原因

有三个常见触发点:

  1. 模板字段名拼写错误
  2. 项目未配置媒体文件访问规则
  3. 缺少媒体文件存储目录

解决方案

步骤1 修正模板字段名

你的catagory和product模型中定义的图片字段为image,模板中误写为img,对应修改:

  • 把{{catagory.img.url}}改为{{catagory.image.url}}
  • 把{{product.img.url}}改为{{product.image.url}}

步骤2 配置项目媒体文件规则

首先在项目根目录的settings.py末尾添加配置:

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

然后修改项目根目录的urls.py(注意是项目全局的urls,不是shop应用的urls),添加媒体文件访问路由:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # 原有路由,比如admin路由、你的shop应用路由
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

步骤3 创建存储目录

在项目根目录手动创建media文件夹,该文件夹用于存储后台上传的所有图片资源。

配置完成后重启Django服务即可正常加载图片。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:06:00