我继承了一个Django应用程序,其中包含以下条目urls.py:
url(r'/abc$', 'app.views.foo', name='foo'),
url(r'/def$', 'app.views.foo', name='foo'),
url(r'^/something$|/other$', 'app.views.foo', name='foo'),
Run Code Online (Sandbox Code Playgroud)
因此,我不仅有几个名为'foo'的url模式,而且某些模式还包含可以匹配多个不同URL的正则表达式.
如果我使用反向('foo'),我会得到哪一个?
小智 6
快速测试,它返回"最后一个".你可以很容易地测试它.在您的示例中,您有语法错误"." 在前2个模式之后,而不是",".顺便说一句,你不应该在同一个APP中有同名的网址,名称的想法是从一个应该代表URL的"唯一名称"中获取一个URL.您可以在不同的应用程序中使用相同名称的URL,然后使用"namespace"参数进行反转.
例如:
....
url(r'^app1/', include('apps.app1.urls', namespace='app1', app_name='app1')),
url(r'^app2/', include('apps.app2.urls', namespace='app2', app_name='app2')),
然后假设每个应用程序的url.py文件包含name ="edit"条目,您可以这样做:
reverse("app1:edit") --> app1/edit/
reverse("app2:edit") --> app2/edit/
玩得开心!
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |