Django url tag несколько параметров
у меня есть два одинаковых кода. Первый работает, как и ожидалось.
urlpatterns = patterns('',
(r'^(?P<n1>d)/test/', test),
(r'', test2),
{% url testapp.views.test n1=5 %}
но добавление второго параметра приводит к возвращению пустой строки.
urlpatterns = patterns('',
(r'^(?P<n1>d)/test(?P<n2>d)/', test),
(r'', test2),)
{% url testapp.views.test n1=5, n2=2 %}
вид подписи:
def test(request, n1, n2=1):
3 ответов
попробовать
{% url testapp.views.test n1=5,n2=2 %}
без пробела между аргументами
обновление: По состоянию на Джанго 1.9 (и, возможно, ранее) правильный способ-опустить запятую и отдельные аргументы, используя пробелы:
{% url testapp.views.test n1=5 n2=2 %}
https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url
из Django 1.5 Предупреждение Не забудьте поставить кавычки вокруг пути функции или имени шаблона!
{% url 'some-url-name' arg1=v1 arg2=v2 %}
вот реальный пример того, как я использую эту технику. Может быть, это поможет:
{% if stories %}
<h2>Stories by @{{author.username}}</h2>
<ul>
{% for story in stories %}
<li><a href="{% url 'reader:story' author.username story.slug %}">{{story.title}}</a></li>
{% endfor %}
</ul>
{% else %}
<p>@{{author.username}} hasn't published any stories yet.</p>
{% endif %}