我正在關注 django 教程,到目前為止,在任務 3 中,我無法在 url 上顯示民意調查。
如果我正確且仔細地遵循了說明,它應該如下所示:
模型.py:
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
視圖.py
from django.http import HttpResponse
from .models import Question
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
output = ', '.join([q.question_text for q in latest_question_list])
return HttpResponse(output)
def detail(request, question_id):
return HttpResponse("You're looking at question %s." % question_id)
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)
網址.py:
from django.contrib import admin
from django.urls import include, path
from . import views
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
# ex: /polls/
path('', views.index, name='index'),
# ex: /polls/5/
path('<int:question_id>/', views.detail, name='detail'),
# ex: /polls/5/results/
path('<int:question_id>/results/', views.results, name='results'),
# ex: /polls/5/vote/
path('<int:question_id>/vote/', views.vote, name='vote'),
]
索引.html
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
設定.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
但是,當我運行服務器時,它找不到民意調查

uj5u.com熱心網友回復:
查看影像,您可以看到以下訊息:
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
1. admin/
您的專案當前指向mysite檔案夾中的 url,該檔案夾是包含settings.py. 您可以通過檢查ROOT_URLCONF您的設定來驗證這一點。
根據您的 url 模式,您最好的polls.urls選擇是搬入:include('polls.urls')mysite.urls
民意調查/urls.py
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'),
]
我的網站/urls.py
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
我們這樣做是因為:
每當 Django 遇到 include() 時,它都會切斷與該點匹配的 URL 的任何部分,并將剩余的字串發送到包含的 URLconf 以進行進一步處理。
記住:你不應該urls.py像path('polls/', include('polls.urls'))在你的polls.urls. 您基本上polls.urls是以polls.urls這種方式匯入的。
uj5u.com熱心網友回復:
您缺少教程中的“撰寫您的第一個視圖”步驟
https://docs.djangoproject.com/en/4.0/intro/tutorial01/#write-your-first-view
下一步是將根 URLconf 指向polls.urls模塊。在mysite/urls.py中,添加一個匯入django.urls.include并在 urlpatterns 串列中插入一個include(),所以你有:
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),
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497993.html
