在我最後一個問題中,我問了如何讓urls在包含urls.py之前爲參數工作並且工作。 Django {% url %} when urls with parameters like: url(r'^foo/<parameter>/$', include(some.urls))django url參數之前包含url與命名空間
現在我想使用包括urls.py 與命名空間相同。
urls.py
urlpatterns = patterns('',
url(r'^/foo/(?P<parameter_1>\d+)/', include('bar.urls', namespace='foo', app_name='foo')),
)
bar.urls.py
urlpatterns = patterns('',
url(r'^/bar/$', 'bar.views.index', name='bar'),
url(r'^/bar/(?P<parameter_2>\d+)/$', 'bar.views.detail', name='bar_detail'),
)
要獲得範本中的網址我使用:
1. {% url foo:bar parameter_1=1 %} or {% url for:bar 1 %}
2. {% url foo:bar_detail parameter_1=1 parameter_2=1 %} or {% url foo:bar_detail 1 1 %}
我期望能獲得網址:1. /foo/1/bar/
和2。 /foo/1/bar/1
但它不起作用。
有趣:如果我叫:
1. {% url foo:bar %}
2. {% url foo:bar_detail parameter_2=1 %} or {% url foo:bar_detail 1 %}
我得到的URL: 1. /foo/(?P<parameter_1>%5Cd+)/bar/
和 2. /foo/(?P<parameter_1>%5d+)/bar/1
我的問題:難道我有一個錯誤在我的代碼或代碼沒有用,我想要做什麼。
有趣!我遇到了同樣的問題,並發現這是django反向方法中的一個錯誤。不幸的是,我的項目使用了一個(痛苦)老版本的Django(1.3)。我最終改變了url結構,所以父urlconf沒有捕獲任何參數。但是你是否知道解決這個問題的方法,這並不意味着要更新到最新的django版本? (我猜這是我最終會做的事情) – acrespo