It should be {% url 'polls:detail' question.id %} I think you mixed up the steps "Removing hardcoded URLs in templates" and "Namespacing URL names"
Hope that helps, Daniel On Tue, Dec 10, 2019 at 11:58 AM Bruckner de Villiers < bruckner.devilli...@gmail.com> wrote: > Running Django 3.0 & Python 3.7.3. > > > > Issue with Tutorial Part 3: > > I replaced “<*li*><*a* href="/polls/{{ question.id }}/">{{ > question.question_text }}</*a*></*li*>” with > > “<*li*><*a* href="{% *url* 'detail' question.id %}">{{ question.question_text > }}</*a*></*li*>” and get the following error: > > Reverse for 'detail' not found. 'detail' is not a valid view function or > pattern name. > > <li><a href="*{% url 'detail' question.id <http://question.id> %}*">{{ > question.question_text }}</a></li> > > index.html: > > {% if latest_question_list %} > > <ul> > > {% for question in latest_question_list %} > > *{% comment %} <li><a href="/polls/{{ question.id > <http://question.id> }}/">{{ question.id <http://question.id> }} {{ > question.question_text }} {{ question.pub_date }}</a></li> {% endcomment %}* > > <li><a href="{% url 'detail' question.id %}">{{ question. > question_text }}</a></li> *{% comment %} - Why doesn't this work?--> {% > endcomment %}* > > {% endfor %} > > </ul> > > {% else %} > > <p>No polls are available.</p> > > {% endif %} > > urls.py: > > from os import \ > > path > > > > from django.urls import \ > > path > > from . import \ > > views > > > > app_name = 'polls' > > urlpatterns = [ > > path('', views.index, name='index'), > > path('<int:question_id>/', views.detail, name='detail'), > > path('<int:question_id>/results/', views.results, name='results'), > > path('<int:question_id>/vote/', views.vote, name='vote'), > > ] > > views.py: > > from django.shortcuts import get_object_or_404, render > > from django.http import \ > > HttpResponse > > from django.shortcuts import \ > > render > > *#from django.template import loader* > > from .models import Question > > > > *# Create your views here.* > > *def* index(request): > > latest_question_list = Question.objects.order_by('-pub_date')[:10] > > context = {'latest_question_list': latest_question_list} > > return render(request, 'polls/index.html', context) > > > > *def* detail(request, question_id): > > question = get_object_or_404(Question, pk=question_id) > > return render(request, 'polls/detail.html', {'question': question}) > > > > *def* results(request, question_id): > > response = "You're looking at the results of question %s." > > return HttpResponse(response % question_id) > > > > *def* vote(request, question_id): > > return HttpResponse("You're voting on question %s." % question_id) > > > > Much obliged, > > > > > > > > Bruckner de Villiers > > 083 625 1086 > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/0072F811-155B-41C2-BDCD-3C529150941B%40gmail.com > <https://groups.google.com/d/msgid/django-users/0072F811-155B-41C2-BDCD-3C529150941B%40gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAHEnUVW5AxWDmgRdvHEUYrd%3D%3D%2BFA6y4htqJjv9sJc-OkiCHQpA%40mail.gmail.com.