2015-09-27 219 views
-1

我有以下网址:Django的NoReverseMatch在

url(r'^%sdform/' %(URLPREFIX), pv.dform, name='dform'),

url(r'^%sform/(P?<growl>.*)/' %(URLPREFIX), pv.dform, name='dform'),

视图代码:

def dform(request, growl = None)是方法签名

重定向代​​码:

msg = 'test' 
return redirect('dform', growl=msg) 

任何想法,为什么我得到那个错误?我正确的参数发送正确的参数与正确的参数名称和所有。

编辑: 基于下面的答案,我想:

url(r'^%sdform/(P?<growl>.*)/' %(URLPREFIX), pv.dform, name='dform_message')

,改变了重定向到:

return redirect('dform_message', growl='Updated Settings')

我仍然得到NoReverseMatch

+1

什么是URLPREFIX?这似乎不是构建您的URL模式的正确方法。 –

+0

为什么不呢?我通过lighttpd设置了一个反向代理,所以这个应用程序可能位于'http:// mydomain/djangoapp1'和'http:// mydomian2/djangoapp2'等等,所以我可以设置一个环境变量并通过settings.py读取它以设置web应用程序的“应用程序上下文”。那有什么问题? – mikeb

+0

您的网络服务器应该通过SCRIPT_NAME环境变量传递位置; Django自动读取并处理所有内容。你不需要做你正在做的事情。 –

回答

-1

我认为你的问题是你不应该为不同的网址使用相同的名称(django docu)。

+0

我改了名字并得到了相同的结果。 – mikeb

+0

名称不必是唯一的。事实上,当你有多个不同参数的模式用于同一个视图时,我会建议给它们相同的名称。 – knbk