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

点击商品跳转详情页时出现NoReverseMatch错误的解决方法

问题根源

错误出在listing.html模板中:你在图片链接的{% url %}标签里使用了i.id和i.name,但当前模板的上下文变量是listing(由views.py的listing函数传入),不存在i这个变量。这导致传递给URL反向解析的参数为空字符串,触发了NoReverseMatch错误。

修复步骤
  1. 修正listing.html的模板变量
    将模板中所有的i替换为listing,同时更新URL反向解析的参数:

    <main>
        <div class="sing-container">
            <div class="sing-header">
                <h2> {{ listing.name }} </h2>
            </div>
        </div>
        <div class="sing-container">
            <div class="sing-header">
                <h2> {{ listing.name }} </h2>
            </div>
            <div class="sing-content">
                {% if listing.photo_present != None %}
                <div class="sing-img">
                    {% if listing.photo_url != None %}
                    <div class="img-center">
                        <a href="{% url 'listing' listing.pk listing.name %}">
                            <img src=" {{ listing.photo_url }} " alt="">
                        </a>
                    </div>
                    {% else %}
                    <div class="img-center">
                        <a href="{% url 'listing' listing.pk listing.name %}">
                            <img src=" media/{{ listing.photo_upload }} " alt="">
                        </a>
                    </div>
                    {% endif %}
                {% endif %}
            </div>
        </div>
    </main>
    
  2. 可选优化(避免后续问题)

    • 确保Listing模型的name字段设置了blank=False,防止商品名称为空导致URL解析失败;
    • 可以将商品名称转为slug格式(替换空格、特殊字符),避免URL出现非法字符。例如在模型中添加slug字段,或在视图中处理名称后传递给模板。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:06:24