Django URL-тег несколько параметров - PullRequest
10 голосов
/ 05 апреля 2010

У меня есть два похожих кода. Первый работает как положено.

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 ]

20 голосов
/ 05 апреля 2010

Попробуйте

{% url testapp.views.test n1=5,n2=2 %}

без пробела между аргументами

Обновление: Начиная с Django 1.9 (и, возможно, ранее), правильный способ - пропустить запятую и разделить аргументы, используя пробелы:

{% url testapp.views.test n1=5 n2=2 %}
1 голос
/ 31 июля 2016

https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url

Из Django 1.5 Предупреждение Не забудьте поставить кавычки вокруг пути к функции или имени шаблона!

{% url 'some-url-name' arg1=v1 arg2=v2 %}
0 голосов
/ 08 февраля 2018

Вот пример того, как я использую эту технику. Может быть, это поможет:

{% 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 %}
...