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

Reply via email to