问题是:在Django模板中编写URL的正确方法是什么?
如果我明确地写它们(像这样):
some_template.html
{% extends "base.html" %}
{% block someblock %}
<a href="/some_url">Anchor</a>
{% endblock someblock %}
Run Code Online (Sandbox Code Playgroud)
然后我决定改变我的URL方案我将不得不改变它们 - template和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')}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,如果我使用模板继承,我必须在上下文中指定所有url变量(也用于父模板).可能它也不是一个好方法.
那么决定是什么?
DrT*_*rsa 12
urlpatterns = [
#...
url(r'^articles/$', views.archive, name='news-archive'),
#...
]
Run Code Online (Sandbox Code Playgroud)
{% url 'news-archive' %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11545 次 |
| 最近记录: |