You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django教程第3部分求助:投票问题无法在浏览器正常显示

排查Django投票页面不显示问题的解决方案

嘿,我看到你跟着Django教程实操时遇到了页面只显示“No polls are available.”的问题,明明严格按步骤来却没出预期效果,咱们来一步步揪出问题所在~

最可能的核心错误:Context变量名格式错误

先看你贴的视图代码,这里有个很容易忽略的细节:

context = { 'latest question list': latest_question_list, }

你给context字典的键加了空格,但Django模板里的变量名是不允许包含空格的!教程里的正确键名应该是和前面变量名一致的latest_question_list(下划线连接)。

模板里肯定是用{{ latest_question_list }}来调用数据的,键名不匹配的话,模板根本拿不到你从数据库查出来的问题列表,自然会触发“无投票”的分支提示。

先把这行代码改成下面这样:

context = { 'latest_question_list': latest_question_list, }

其他需要排查的点

如果改完变量名还是不行,再检查下面两个环节:

  • 确认数据库有测试数据
    即使代码逻辑正确,数据库里没有Question对象的话,页面还是会显示无投票。你可以通过Django Shell快速验证:

    1. 运行命令:python manage.py shell
    2. 依次输入:
      from polls.models import Question
      # 查看所有Question数据
      Question.objects.all()
      

    如果返回空列表,就手动创建几个测试数据:

    from django.utils import timezone
    Question.objects.create(question_text="我的第一个投票问题", pub_date=timezone.now())
    
  • 检查模板的遍历逻辑
    虽然你没贴模板代码,但对照教程确认一下:模板里应该有类似这样的判断和遍历代码,确保变量名和context里的键完全一致:

    {% 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 %}
    

先优先修正变量名的问题,这大概率就是解决你当前问题的关键~

内容的提问来源于stack exchange,提问作者hSaim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:53:28