Django: Reverse для 'detail' с аргументами '(' ',)' и аргументы ключевого слова '{}' not found

Я следую официальному учебнику, чтобы изучить Django и использовать 1.5.

У меня была эта ссылка как часть моего индексного шаблона, который работал нормально:

<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li> 

однако это жестко запрограммировано, и в учебнике предлагается использовать более эффективный способ:

 <li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li> 

так что вам будет лучше иметь дело с огромным количеством шаблонов, и вы должны внести изменения в URL.

Поскольку я сделал вышеупомянутое изменение, я получаю следующие ошибки при запуске приложения:

 Exception Type: NoReverseMatch Exception Value: Reverse for 'detail' with arguments '('',)' and keyword arguments '{}' not found. 

Мой urls.py выглядит так:

 from django.conf.urls import patterns, url from polls import views urlpatterns = patterns('', url(r'^$', views.index, name='index'), url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'), url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'), url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'), ) 

view.py выглядит так:

 from django.shortcuts import render, get_object_or_404 from django.http import Http404 from polls.models import Poll def index(request): latest_poll_list = Poll.objects.order_by('-pub_date')[:5] context = {'latest_poll_list': latest_poll_list} return render(request, 'polls/index.html', context) def detail(request, poll_id): poll = get_object_or_404(Poll, pk = poll_id) return render(request, 'polls/detail.html', {'poll': poll}) 

мой шаблон index.html выглядит так:

 {% if latest_poll_list %} <ul> {% for poll in latest_poll_list %} <li><a href="{% url 'polls:detail' poll_id %}">{{ poll.question }}</a></li> {% endfor %} </ul> {% else %} <p> No polls are available.</p> {% endif %} 

Обычно я мог легко прочитать, откуда возникает ошибка, и в этом случае я не могу определить причину ошибки, поэтому я не могу продвинуться в своем исследовании. Любая помощь будет оценена.

5 Solutions collect form web for “Django: Reverse для 'detail' с аргументами '(' ',)' и аргументы ключевого слова '{}' not found”

В вашем index.html вы дали poll_id как аргумент, но это просто имя, которое аргумент будет иметь в функции detail ; он не определен в вашем шаблоне. Фактическое значение, которое вы хотите вызвать с помощью функции, вероятно, poll.id

Моя ошибка была опечатка на detail.html :

 <form action={% url 'polls:vote' polls.id %}" method="post"> 

должно было

 <form action={% url 'polls:vote' poll.id %}" method="post"> 

Мне потребовалось некоторое время, чтобы понять, что страница трассировки django постоянно указывала мне на соответствующую строку кода. : $

Некоторое время я боролся с этим. Тогда я заметил, что у меня был опрос poll.id, а не Poll.id с (столица P)

Это случилось со мной, когда я читал учебник. Я не изменил poll_id на pk:

 url(r'^(?P<poll_id>\d+)/$', views.DetailView.as_view(), name='detail'), 

против

 url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'), 

Также в

опросы / urls.py

у меня была орфографическая ошибка

url (r '^ (? P [0-9] +) / $', views.detail, name = 'detail s '),

против правильного кода

url (r '^ (? P [0-9] +) / $', views.detail, name = 'detail'),

потратили некоторое время на поиск ошибки, поэтому ищите правильную орфографию. лол

  • Django, отображающий представление в другом представлении?
  • Создайте объект django, используя представление без формы
  • Django - как сохранить мой хешированный пароль
  • Django вызывает REST API из моделей или представлений?
  • Передача объектов из шаблона для просмотра с помощью Django
  • Понимание django.shortcuts.redirect
  • render_to_response или перенаправление изменяет элементы шаблона в Django 1.8
  • объект формы не имеет атрибута 'cleaned_data'
  •  
    Interesting Posts for Van-Lav

    Как я могу получить весь текст с сайта Scrapy?

    Как очистить полноразмерные изображения с веб-сайта?

    selenium получает установку под пакетами python 2.7

    Как я могу извлечь это очевидное событие из этого изображения?

    Как заставить Fabric автоматически (вместо интерактивного взаимодействия) взаимодействовать с командами оболочки? Объединить с pexpect?

    Проверьте, является ли вход списком / кортежем строк или одной строкой

    Python AttributeError: объект 'module' не имеет атрибута 'DIST_L2'

    Как импортировать глобально установленный пакет в папку virtualenv

    Рекомендуемый способ инициализации переменной в if block

    python – networkx – отображает различные цветные узлы с использованием двух списков

    Как выгрузить (перезагрузить) модуль Python?

    Базовая финансовая библиотека для Python

    что такое эквивалент Python доходности Ruby?

    Как я могу выполнять несколько замещений с помощью regex в python?

    pandas, как использовать groupby для группировки столбцов по дате в ярлыке?

    Python - лучший язык программирования в мире.