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

Django一对多关联:点击汽车品牌跳转对应车型页面路径配置问题

解决方法

1. 修正视图逻辑

你的specific_car视图当前是按车型ID获取单台车,而我们需要根据品牌ID拉取该品牌下的所有车型,所以要调整查询方式:

def specific_car(request, pk):
    # 根据品牌ID筛选对应所有车型
    cars = Cars.objects.filter(mark_id=pk)
    return render(request, 'car_detail.html', {'cars': cars})

2. 优化URL配置

给URL命名并指定参数类型(int),避免类型不匹配问题,同时让路径更规范:

urlpatterns = [
    path('marks/', marks_list),
    path('admin/', admin.site.urls),
    # 命名URL并限定pk为整数,末尾加/符合常规路径规范
    path('marks/<int:pk>/', specific_car, name='specific_car')
]

3. 修正模板跳转路径

在cars.html中,通过品牌的pk构造正确跳转路径,推荐用Django的{% url %}标签(避免硬编码路径,更易维护):

{% for mark in marks %}
<div>
    <a href="{% url 'specific_car' pk=mark.pk %}">
        {{ mark.mark }}
    </a>
</div>
{% endfor %}

4. 在详情页展示车型列表

最后在car_detail.html中循环渲染该品牌下的所有车型:

<h2>该品牌车型</h2>
<ul>
    {% for car in cars %}
        <li>{{ car.CarName }}</li>
    {% empty %}
        <li>暂无车型数据</li>
    {% endfor %}
</ul>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:10:12