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

Django模板渲染空白响应:如何正确传递列表数据?

Django模板渲染post列表返回空白的修复方案

问题场景

尝试在Django模板中渲染指定post列表的名称,但页面返回空白响应。最初使用的代码如下:

最初的views.py代码

from django.shortcuts import render

post = [
        {
        'name':'Abc,  # 注意:此处缺少闭合单引号,存在语法错误
        'dob':'01/01/1998'
        },

        {
        'name':'Xyz',
        'dob':'24/01/1993'
        }
    ]

def home(requests):
    return render(requests,'app1/home.html',dict(post))

最初的home.html代码

{% for item in post %}
        <p>name is {{ item.name }}</p>
{% endfor %}

错误原因

  1. 上下文传递方式错误:Django的render函数要求第三个参数是键值对形式的上下文字典,键对应模板中要引用的变量名,值是对应的数据。直接使用dict(post)会把列表中的字典元素错误转换为字典的键值对,导致模板无法获取到名为post的变量。
  2. 语法错误:原post列表的第一个字典中,'name':'Abc,缺少闭合单引号,会触发Python语法错误(后续修改中已修复)。

修复后的代码

通过构建正确的上下文字典传递数据后,页面可正常渲染内容:

修改后的views.py代码

from django.shortcuts import render

post = [
        {
        'name':'Abc',
        'dob':'01/01/1998'
        },

        {
        'name':'Xyz',
        'dob':'24/01/1993'
        }
    ]

def home(requests):
     context = {
         'posts': post
     }
     return render(requests,'app1/home.html',context)

修改后的home.html代码

{% for item in posts %}
        <p>name is {{ item.name }}</p>
{% endfor %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:05:18