我没有找到任何解决方案,如何使用以下配置(使用 Django1.3)在模板中获取 url:
网址.py
urlpatterns = patterns('',
url(r'^/foo/(?P<parameter>\d+)/$', include('bar.urls'), name='foo-url'),
)
包括 url-conf:
bar.urls.py
urlpatterns = patterns('',
(r'^/bar/$', 'bar.views.index'),
url(r'^/bar/(?P<parameter2>\d+)/$', 'bar.views.detail', name='bar-url'),
)
bar.views.py
def detail(request, parameter, parameter2):
obj1 = Foo.objects.get(id=parameter)
obj2 = Bar.objects.get(id=parameter2)
现在我尝试通过以下方式获取模板中的网址:
{% url bar-url parameter=1 parameter2=2 %}
我希望得到: /bar/1/foo/2/
在这种情况下可以使用 {% url %} 吗?
最佳答案
是的,您可以像这样获取您的网址:-
{% url 'bar-url' 1 2 %}
但请注意,您的 url 配置实际上应该是这样的:-
网址.py
urlpatterns = patterns('',
url(r'^/foo/(?P<parameter>\d+)/, include('bar.urls')),
)
bar.urls.py
urlpatterns = patterns('',
(r'^/bar/$, 'bar.views.index'),
url(r'^/bar/(?P<parameter2>\d+)/$, 'bar.views.detail', name='bar-url'),
)
除非您专门映射,否则没有
foo-url
:-网址.py
urlpatterns = patterns('',
url(r'^/foo/(?P<parameter>\d+)/$, 'another.views.foo', name='foo'),
url(r'^/foo/(?P<parameter>\d+)/, include('bar.urls')),
)
请注意,
$
表示正则表达式的结尾。关于python - Django {% url %} 当带有 : url(r'^foo/<parameter>/$', include(some.urls)) 等参数的 url 时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13521172/