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

Django Admin自定义模板中手动添加关联模型指定对象跳转链接的问题(无需JS)

Django Admin自定义模板中手动添加关联模型指定对象跳转链接的问题(无需JS)

Hey,我来帮你解决这个问题!你遇到的NoReverseMatch大概率是URL名称写错了,或者参数传递的小问题,完全不用JS,也不一定需要extra_context,咱们一步一步来:

  • 先搞对Admin URL的命名规则
    Django Admin的单个对象修改页URL命名是固定格式:admin:<app_label>_<模型类名小写单数>_change。比如你的Model模型在appname这个应用下,正确的URL名称应该是admin:appname_model_change——注意是单数的model,不是你写的carmodels(除非你的模型类名是CarModels,但看你描述应该是Model)。

    要是拿不准,你可以用python manage.py show_urls(需要先装django-extensions:pip install django-extensions)查看所有已注册的URL,找到对应Model修改页的那条,就能看到准确的名称。

  • 在模板里正确传递PK参数
    如果是在Car的Admin修改页模板(比如自定义的change_form.html)里,Django已经把当前的Car对象放到了original变量里,你直接用关联Model的PK就行:

    <a href="{% url 'admin:appname_model_change' original.model.pk %}">跳转到关联的Model详情页</a>
    

    要是你想硬编码测试(比如pk=42),只要URL名称正确,这么写也没问题:

    <a href="{% url 'admin:appname_model_change' 42 %}">测试跳转到PK=42的Model</a>
    
  • 要不要用extra_context?
    完全不需要!Admin模板本身就自带当前对象的上下文(original变量),直接用它关联的Model对象PK就可以,没必要额外传上下文。

最后再排查几个可能的小坑:

  • 确认你的app名称没错(比如是不是叫appname,还是实际是auto、cars这类);
  • 模型类名的小写单数别写错(比如模型是VehicleModel,那就是vehiclemodel);
  • 确保你要跳转的Model已经在Admin里注册了,不然对应的URL根本不存在。

这样调整后,应该就能正常跳转啦!

备注:内容来源于stack exchange,提问作者xtlc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 08:53:07