Django NoReverseMatch
1、报错如下:
Reverse for 'receive_ServerMetricExtendAnalysisData_change' not found. 'receive_ServerMetricExtendAnalysisData_change' is not a valid view function or pattern name.
2、这次gpt也没有给我明确的答案。
3、我得项目是用的django,drf,simpleui,然后这个操作是发生在django的后台。想在列表里面新增一列,作为超链接到另一个模型的change页面去。
from rest_framework.reverse import reverse from django.urls import reverse target_model_url = reverse('admin:receive_ServerMetricExtendAnalysisData_change', args=[smead_obj.id])
起初的操作是这样的,然后反复报错,也看了官网关于reverse的解释:https://docs.djangoproject.com/zh-hans/4.2/ref/urlresolvers/#reverse-lazy, 最终就是妹的没有用,drf的reverse跟django的没多大的区别,起初以为后台不能用drf的reverse,后来测试两者都可以。
4、开始debug,抓住 target_model_url,发现他妹的,reverse支持两种参数模式,一种是不带参数,一种带参数
admin:myapp_mymodel_change,我所配置的mymodel名字里面有大写字符的,debug出来的别的app的name都是全小写的,看到这觉得这怎么这么傻逼,立马改了我的果然生效。
5、附上我可行的两种方式
target_model_url = f'/admin/receive/servermetricextendanalysisdata/{smead_obj.id}/change/' return format_html('<a href="{}">点击查看结果</a>', target_model_url)
from django.urls import reverse target_model_url = reverse('admin:receive_servermetricextendanalysisdata_change', args=[smead_obj.id]) return format_html('<a href="{}">点击查看结果</a>', target_model_url)
6、参考:
反查管理 URL:https://docs.djangoproject.com/zh-hans/3.2/ref/contrib/admin/#reversing-admin-urls
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)