无论如何在 Django 的模板 url 函数中传递超过 2 个参数?

Posted

技术标签:

【中文标题】无论如何在 Django 的模板 url 函数中传递超过 2 个参数?【英文标题】:Is there anyway to pass more than 2 arguments in Django's template url function? 【发布时间】:2020-08-09 16:17:49 【问题描述】:

我想向这个路径传递 3 个参数:

path('assignment/<str:class_id>/<str:assignment_id>/<str:edit>', views.assignment, name='teacher-assignment')

这是模板代码:

<a href="% url 'teacher-assignment' class_id=class_id assignment_id=assignment.id|uuid_to_str edit='edit=false' %"> assignment.assignment_name </a>

然而,Django 抛出未找到反向匹配错误,仅显示传递的参数中列出的这些参数中的 2 个。模板 url 函数的 cmets 也只显示了 2 个正在传递的参数。如何将 3 个参数传递给 URL 调度程序?

编辑: 这是完整的反向错误: NoReverseMatch 在 /teacher/assignment/22b95fce8983488db5ca34be80849973/74dba6277a3142d09b1bed77b10bf66f/edit=false 使用关键字参数''assignment_id': '74dba6277a3142d09b1bed77b10bf66f', 'edit': 'edit=true'' 的“教师分配”反向。尝试了 1 种模式:['教师/作业/(?P[^/]+)/(?P[^/]+)/(?P[^/]+)$']

【问题讨论】:

你能分享完整的反向错误吗?我很确定您不能在有效的网址中使用= 可以帮助***.com/a/49278793/8656493 以下是完整的反向错误:NoReverseMatch在/教师/分配/ 22b95fce8983488db5ca34be80849973 / 74dba6277a3142d09b1bed77b10bf66f /编辑=假反向关于“教师分配”与关键字参数“” assignment_id“:‘74dba6277a3142d09b1bed77b10bf66f’,”编辑': 'edit=true'' 未找到。尝试了 1 种模式:['teacher/assignment/(?P[^/]+)/(?P[^/]+)/(?P[^/]+ )$'] 【参考方案1】:

已解决!原来反向错误来自反向链接到的 html 文件,因为当我向 url 添加参数时,我没有检查是否更新实际 html 文件本身中的 % url % 语句。

【讨论】:

以上是关于无论如何在 Django 的模板 url 函数中传递超过 2 个参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 模板中获取当前 URL?

如何在 Django 模板中获取当前 URL?

如何在 Django 模板中获取当前 URL?

在 django 模板 URL 标签中传递参数

Django 1.11:模板中的 URL 函数未按预期工作

如何在 Django 模板中集中 URL?