问题是:在 Django 模板中编写 URL 的正确方法是什么?
如果我明确地写它们(像这样):
some_template.html
{% extends "base.html" %}
{% block someblock %}
<a href="/some_url">Anchor</a>
{% endblock someblock %}
然后我决定更改我的 URL 方案我将不得不同时更改模板和 urls.py 模块(似乎这种方式与 DRY 原则相冲突)
另一种方法是使用变量(像这样):
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')}
但在这种情况下,如果我使用模板继承,我必须在上下文中指定所有 url 变量(也适用于父模板)。可能这也不是一个好方法。
那么决定是什么?
最佳答案
使用named urls和 {% url %}
标签。
urlpatterns = [
#...
url(r'^articles/$', views.archive, name='news-archive'),
#...
]
{% url 'news-archive' %}
关于django - 如何在 Django 模板中指定 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898099/