Использование URL в шаблонах Django - PullRequest
0 голосов
/ 24 мая 2018

У меня есть следующая конечная точка django 1.9:

url(r'^(?P<pk>\d+)/members/(?P<status>active|deactivated)?$',
    gym.GymUserListView.as_view(),
    name='user-list')

Используя вышеизложенное, действительный URL будет выглядеть как /1/members/active или /1/members/deactivated

Я пытаюсь использовать url в одном из моих шаблонов, например:

<button type="button" class="btn btn-outline-warning">
  <a href="{% url 'user-list' pk=gym.id status='deactivated' %}"/>View Inactive</a>
</button>

Это приводит к следующей ошибке:

django.core.urlresolvers.NoReverseMatch: Reverse for 'user-list' with arguments '()' and keyword arguments '{'pk': 1, 'status': 'deactivated'}' not found.
0 pattern(s) tried: [ ]

Что может быть не так?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Похоже, вы забыли включить пространство имен.Тег URL должен выглядеть примерно так:

{% url 'users:user-list' pk=gym.id status='deactivated' %}
0 голосов
/ 24 мая 2018

Это может быть несколько вещей.

  • Дважды проверьте синтаксис для этого регулярного выражения (я этого не сделал).Возможно, удалите шаблон или для параметра состояния и замените его чем-то общим на данный момент, чтобы устранить это как потенциальную причину.
  • Вы также можете попробовать полностью удалить второй параметр и посмотреть,может получить URL, сгенерированный только pk - это точно скажет вам, если проблема связана с шаблоном или конфигурацией ваших URL
  • В зависимости от макета вашего приложения, вам может понадобиться использовать пространство имен в вашем теге шаблона: {% url 'myapp:user-list' pk=gym.id status='deactivated' %}
  • Это приложение, где urls.py для этого случая в вашем INSTALLED_APPS?
...