网址 django,NoReverseMatch

Posted

技术标签:

【中文标题】网址 django,NoReverseMatch【英文标题】:urls django, NoReverseMatch 【发布时间】:2015-04-23 20:15:47 【问题描述】:

我有这个错误,我不知道它的来源:

/PROJETTEST/rec 处的 NoReverseMatch 未找到带有参数 '('',)' 和关键字参数 '' 的 'myp' 的反向操作。尝试了 1 种模式:['(?P\w+)$']

 url(r'^allp$', allp.as_view(), name="allp"),
 url(r'^allp/(?P<slug>[^/]+)$',ficheP.as_view(), name="ficheP"),

 url(r'^(?P<namep>\w+)$','myp', name="myp"),
 url(r'^(?P<namep>\w+)/members$','members', name="members"),
 url(r'^(?P<namep>\w+)/rec','rec', name="rec"),


    <a href="% url 'myp' p.name %" role="button">Gen</a>
    <a href="% url 'members' p.name %" role="button">Members</a>
    <a href="% url 'rec' p.name %" role="button">rec</a>

当我想访问..//rec..时我有。

【问题讨论】:

【参考方案1】:

p.name 是模板中的空字符串。而myp url 需要至少一个字母数字字符作为参数。

【讨论】:

那么为什么只有 rec 不起作用?因为 myp 和 members 工作,所以 p.name 不为空 仔细阅读错误信息。反向不适用于模板中的第一个 % url % 标记为 % url 'myp' p.name % 那么为什么当我点击 Gen 时它会起作用? 对不起,我明白了这个问题,但我不知道原因。我的观点有问题!谢谢你们俩 因为你是在另一个视图(不是/rec/)上做的,它通过非空p.name

以上是关于网址 django,NoReverseMatch的主要内容,如果未能解决你的问题,请参考以下文章

Django - 按钮网址

Django 网址配置

1.2Django 视图与网址__进阶

Django:相同的方法不同的网址

Django - 包括应用程序网址

NoReverseMatch 与 Django 网址