我正在尝试学习Django,并尝试了https://docs.djangoproject.com/en/2.0/intro/tutorial03/上的分步教程。
我已经完成了该应用程序(很好,直到第7部分),并且按预期方式工作(并且已在教程中进行了说明)。
(到目前为止)我面临的唯一问题是,当出现“找不到页面(404)”错误时,我试图从“管理”页面导航到链接页面“查看站点”。正在附加图像以使情况更清晰。
链接指向“ http://127.0.0.1:8000/”,而链接指向“ http://127.0.0.1:8000/polls/”。当我在地址栏中手动添加路径的缺失部分时,将显示正确的页面(按预期)。
我已经尝试在这个论坛以及许多其他论坛上进行搜索,但是找不到正确的解决方案。
我在mac sierra上使用Django 2.0.6和Python 3.6.4。
对此表示感谢。
谢谢
mysite / urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
mysite / polls / urls.py
from django.urls import path
from . import views
app_name = 'polls'
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'),
]
投票/模板/投票/index.html
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />
{% 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 :(得分:0)
应该是这样的:
path('', include('polls.urls')),
不是这样的:
path('polls/', include('polls.urls'))
因为它应该是您网站的根网址
答案 1 :(得分:0)
您应该打开http://127.0.0.1:8000/polls/
不是
如果您想使用http://127.0.0.1:8000/,那么您的路径应该是
from django.urls import include, path
urlpatterns = [
path('', include('polls.urls')),
path('admin/', admin.site.urls),
]
答案 2 :(得分:0)
这是我所做的(可能不是最优雅的解决方案,但效果很好)。
我已修改“ mysite / urls.py”文件,如下所示:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('', include('polls.urls')),
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
这样,我既可以通过Django Admin页面上的“查看网站”链接(URL:“ 127.0.0.1:8000”),也可以通过其他位置的链接(URL:“ 127.0”)访问“民意调查”页面.0.1:8000 / polls /")。
感谢所有帮助。
PS。 https://docs.djangoproject.com/en/2.0/topics/http/urls/可能对像我这样的学习者有所帮助。