【问题标题】:How to use reverse() in django on included URLs?如何在包含 URL 的 django 中使用 reverse()?
【发布时间】:2015-04-23 15:09:52
【问题描述】:

我的 urls.py 大致如下:

...
url(r'^advance-day/$', 'mafia.views.advance_day', name='advance_day'),
url(r'^form/', include(form_urls)),
...

我最近将表单 URL 移至单独的 form_urls.py,因为有很多表单,我不想让它们妨碍。但是,如果不使用视图的全名,我就无法弄清楚如何在它们上使用django.core.urlresolvers.reverse()。例如,我可以做reverse(mafia.views.investigation_form),但我更希望能够做reverse(form_urls:investigation) 之类的。

我在模板中也有同样的问题。在我将{% url sign_up %} 的每个实例转换为{% url mafia.views.sign_up %} 等之前。我想尝试使用名称仍然这样做。有办法吗?

【问题讨论】:

    标签: python django django-templates django-urls


    【解决方案1】:

    namespacing of url patterns解决了你面临的问题:

    首先,为您包含的网址添加一个namespace 参数到您的主urls.py

    url(r'form/', include(form_urls, namespace='forms')),
    

    假设您在form_urls 中有以下内容:

    url(r'my-form/$', 'mafia.views.my_form', name='my_form'),
    

    然后您可以使用{% urls forms:my_form %} 反转它。

    【讨论】:

    • 谢谢,这就是我要找的。​​span>
    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 2018-07-19
    • 2012-01-08
    • 2021-08-10
    • 2012-06-28
    • 2011-11-17
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多