需要帮忙。无法解决网址错误

时间:2019-09-06 09:13:22

标签: python django django-generic-views

我的项目中的网址有问题。 我是编程新手,正在通过官方网站上的Django教程学习Django。在本教程的第4部分中,有一部分显示了如何使用通用视图。 我检查了我的代码几次,似乎一切都与教程中的完全一样。 但是,当我单击detail.html的链接(在索引页面上)时,出现请求URL的404错误:http://127.0.0.1:8000/1// 我不知道我怎么得到这个请求的URL(以第二个正斜杠结尾)。 我究竟做错了什么? 当我使用返回的函数(即render(request,“ polls / detail.html”,context)

)时,一切正常

以下是调试错误说明: “使用mysite.urls中定义的URLconf,Django依次尝试了以下URL模式:

[name='index']
<int:pk>/ [name='detail']
<int:pk>/results/ [name='results']
<int:question_id>/vote/ [name='vote']
admin/

当前路径1 //与任何这些都不匹配。”

下面是我的index.html,project / urls.py,app / urls.py和app / views.py的代码

project / urls.py:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('', include('polls.urls')),
    path('admin/', admin.site.urls),
]

app / urls.py:

urlpatterns = [
    path('', views.IndexView.as_view(), name="index"),
    path('<int:pk>/', views.DetailView.as_view(), name="detail"),
    path('<int:pk>/results/', views.ResultsView.as_view(), name="results"),
    path('<int:question_id>/vote/', views.vote, name="vote"),
]

app / views.py

from django.views import generic

from .models import Choice, Question


class IndexView(generic.ListView):
    template_name = 'polls/index.html'
    context_object_name = "latest_question_list"

    def get_queryset(self):
        """Return the last five published questions."""
        return Question.objects.order_by("-pub_date")[:5]


class DetailView(generic.DetailView):
    model = Question
    template_name = 'polls/detail.html'


class ResultsView(generic.DetailView):
    model = Question
    template_name = 'polls/results.html'

index.html正文:

{% if latest_question_list %}

<ul>

    {% for question in latest_question_list %}

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

    {% endfor  %}

</ul>

{% else %}

<p>No polls are available.</p>

{% endif %}

0 个答案:

没有答案