Django跳转报错Reverse for 'filename' not found如何解决?
问题诊断
- 你提供的菜单跳转代码、url路由配置、
MscItPdf_Note视图逻辑本身没有错误,报错的触发点在视图返回的pdfNotes.html模板文件中 - 错误提示
Reverse for 'filename' not found明确说明:你在pdfNotes.html模板里使用了{% url 'filename' ... %}的反向路由解析语法,但你在项目的urls.py中没有定义过name="filename"的路由规则 - 从错误回溯可以看到,你项目中还有一个名为
pdfNote的视图,和你贴出的MscItPdf_Note视图共用了pdfNotes.html模板,所以两个视图的请求都会触发这个模板中的错误
解决方案
- 打开你的
pdfNotes.html模板文件,定位所有使用{% url 'filename' %}语法的代码行 - 根据你的业务需求选择修正方式:
- 如果是要实现PDF文件直接下载功能,不需要额外走视图处理:直接引用模型中文件字段的
url属性即可,示例写法为href="{{ pdfnote.文件字段名.url }}",将文件字段名替换为你MscItPDF_Notes模型中存PDF文件的字段名 - 如果是需要走自定义视图处理文件请求:在urls.py中补充对应的路由配置,给处理文件请求的path配置项加上
name='filename'属性,同时保证模板中传给{% url %}的参数数量、类型和路由定义的参数完全匹配
- 如果是要实现PDF文件直接下载功能,不需要额外走视图处理:直接引用模型中文件字段的
- 额外检查:你贴出的路由路径是
/MscItPdf_Note/开头,但报错中的请求路径是/pdfNote/开头,说明你存在两套路由和视图指向同一个模板,注意两个视图传给模板的参数格式要统一,避免后续出现变量不存在的错误
内容的提问来源于stack exchange,提问作者Ashwin Behera
相关产品推荐
相关产品推荐

