如何在Django模板中指定URL?
问题是:在Django模板中编写URL的正确方法是什么 如果我明确地写它们(如下所示):如何在Django模板中指定URL?,django,templates,Django,Templates,问题是:在Django模板中编写URL的正确方法是什么 如果我明确地写它们(如下所示): some_template.html {%extends“base.html”%} {%block someblock%} {%endblock someblock%} 然后我决定改变我的URL方案,我将不得不同时改变-template和URL.py模块(这种方式似乎与DRY原则相冲突) 另一种方法是使用变量(如下所示): some_template.html {%extends“base.html”%}
some_template.html
{%extends“base.html”%}
{%block someblock%}
{%endblock someblock%}
然后我决定改变我的URL方案,我将不得不同时改变-template和URL.py模块(这种方式似乎与DRY原则相冲突)
另一种方法是使用变量(如下所示):
some_template.html
{%extends“base.html”%}
{%block someblock%}
{%endblock someblock%}
views.py
定义一些url(请求):
返回HttpResponse('Hello,world!')
定义另一个_url(请求):
返回render_to_response('some_template.html',{'url_var':reverse('some_url')}
但在这种情况下,如果我使用模板继承,我必须在上下文中指定所有url变量(也用于父模板),这可能不是一个好方法
那么决定是什么呢?使用和标记
谢谢。我猜Django一定有这样一种简单实用的方法。对所有托管文件使用{{STATIC\u URL}}和{MEDIA\u URL}也是一种很好的做法,例如href=“{{STATIC\u URL}}images/picture1.jpg”如果您的图像位于名为images的目录中,无论您的静态托管目录位于何处。如果url是硬编码url怎么办?我想在模板中使用该url a href?您可以参考以下问题:
some_template.html
{% extends "base.html" %}
{% block someblock %}
<a href="/some_url">Anchor</a>
{% endblock someblock %}
some_template.html
{% extends "base.html" %}
{% block someblock %}
<a href="{{ url_var }}">Anchor</a>
{% endblock someblock %}
views.py
def some_url (request):
return HttpResponse('Hello, world!')
def another_url (request):
return render_to_response('some_template.html', {'url_var': reverse('some_url')}
urlpatterns = [
#...
url(r'^articles/$', views.archive, name='news-archive'),
#...
]
{% url 'news-archive' %}