Django绝对是初学者的官方教程,绝对失败了!

Rig*_*des 2 python django

确实不是那种程度的失败.我刚从djangoproject.com完成了4部分教程,我的管理应用程序工作正常,我的入口点url(/ polls /)运行良好,除了我得到这个http响应:

没有民意调查.

即使数据库有一个注册表.使用管理员应用程序输入,该条目显示应该是这样的方式.

在本教程结束时,您可以通过将其替换为URLconf上的通用视图来更改所有硬编码视图.在所有修改之后,你的urls.py最终会像这样:

from django.conf.urls.defaults import *
from mysite.polls.models import Poll

info_dict = {
    'queryset': Poll.objects.all(),
}

urlpatterns = patterns('',
    (r'^$', 'django.views.generic.list_detail.object_list', info_dict),
    (r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
    url(r'^(?P<object_id>\d+)/results/$', 'django.views.generic.list_detail.object_detail', dict(info_dict, template_name='polls/results.html'), 'poll_results'),
    (r'^(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
)
Run Code Online (Sandbox Code Playgroud)

使用这些通用视图,复制/粘贴我的views.py文件是没有意义的,我只会提到只有一个投票功能(因为django通用视图可以完成所有的魔术).我的假设是urls.py文件需要一些调整,或者在某些方面是错误的.为了发送"没有民意调查可用".在/ polls/url输出.我的poll_list.html文件如下所示:

{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li>{{ poll.question }}</li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

它将latest_poll_list变为false,这就是执行else块的原因.

你能帮我个忙吗?(我在stackoverflow上搜索了重复的问题,甚至在谷歌搜索这个问题,但我找不到任何东西).当我进入http://127.0.0.1:8000/polls时,为什么会收到此消息?

Ben*_*end 13

您在本教程的4.部分中忽略了这一段:

在本教程的前几部分中,模板已经提供了包含轮询和latest_poll_list上下文变量的上下文.但是,通用视图提供变量objectobject_list上下文.因此,您需要更改模板以匹配新的上下文变量.通过你的模板去,并修改任何提及latest_poll_listobject_list,并更改任何提及pollobject.