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

Django Admin反向URL报错求助:同应用内模型跳转失败

Django Admin reverse跳转URL找不到错误修复

问题场景

在jobs_xml应用的Django Admin中,尝试从CountJobBoardErrors模型页面创建跳转到JobBoardExterne模型的链接时,调用reverse('admin:jobs_xml_jobboardexterne')触发URL找不到错误。当前页面路径为admin/jobs_xml/countjobboarderrors/,已确认jobs_xml应用已在settings.py中注册,项目urls.py也正确配置了admin路由。

出错代码

class CountJobBoardErrorsAdmin(admin.ModelAdmin):
    list_display = ("have_error_job_board", "have_not_error_job_board", "total_job_board")

    def have_error_job_board(self, obj):
        url = reverse('admin:jobs_xml_jobboardexterne')
        return mark_safe(f'<a href={url}>{JobBoardExterne.objects.count()}</a>')

解决方案

Django Admin的URL命名必须包含动作动词,正确的reverse命名格式为admin:<app_label>_<model_name>_<action>。针对跳转到模型列表页的场景,需要添加changelist动作后缀。

修改后的代码

class CountJobBoardErrorsAdmin(admin.ModelAdmin):
    list_display = ("have_error_job_board", "have_not_error_job_board", "total_job_board")

    def have_error_job_board(self, obj):
        # 补充changelist动作,对应JobBoardExterne模型的列表页URL
        url = reverse('admin:jobs_xml_jobboardexterne_changelist')
        return mark_safe(f'<a href={url}>{JobBoardExterne.objects.count()}</a>')

常见Admin URL动作后缀说明

  • changelist:模型的列表页面(即你要跳转的页面)
  • add:模型实例的添加页面
  • change:模型实例的编辑页面(调用时需传入对象ID参数,如reverse('admin:jobs_xml_jobboardexterne_change', args=[obj.id]))
  • delete:模型实例的删除页面(调用时需传入对象ID参数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:22:52