Django模板URL标签传参报错:无法解析'data.id'剩余部分
解决Django模板url标签传参解析错误
错误提示Could not parse the remainder: 'data.id' from ''viewproduct'data.id'的原因很明确:{% url %}标签中视图名称和参数之间必须用空格分隔,你写的'viewproduct'data.id没有空格,模板引擎无法识别参数部分。
另外你的代码还有两个潜在问题:
- 循环变量和数据源同名(
{% for data in data %}),会导致遍历过程中覆盖数据源,后续无法正确获取数据 - 开头的
<p>{% for data in data %}</p>是错误写法,p标签不该包裹for循环标签
以下是修正后的完整代码:
{% for item in data %} <div class="item mt-5"> <div class="card"> <a href="{% url 'viewproduct' item.id %}"> <img class="women" src="{{ item.image.url }}" alt="First slide"> </a> </div> <div class="card-body text-center"> <h4>{{ item.name }}</h4> </div> </div> {% endfor %}
关键修正点:
- 将
{% url 'viewproduct'data.id %}改为{% url 'viewproduct' item.id %},给视图名称和参数之间加上空格 - 把循环变量从
data改为item,避免和数据源重名 - 移除包裹for循环的错误p标签,同时调整a标签的闭合位置(原代码中a标签跨了card和card-body,可能导致布局问题)
内容的提问来源于stack exchange,提问作者user30595687
相关产品推荐
相关产品推荐

