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

渲染选中的模板时抛出「HttpRequest无'meta'属性」错误该如何处理?

问题根因
  • 你对文档的描述存在理解偏差:Django 模板的render()方法要求传入的第二个参数是 HttpRequest 类的实例对象,也就是视图函数形参中拿到的request,而非HttpRequest这个类本身。
  • 你当前代码直接传入了HttpRequest类,类本身不会初始化meta属性,只有实例化后的请求对象才会携带包括meta在内的请求上下文数据,因此触发属性不存在的报错。
修复方案

修改代码为如下写法即可:

from django.http import HttpResponse
from django.template.loader import select_template

def thanks(request):
    template = select_template(['poll/a.html', 'poll/b.html'])
    # 传入实例化的request对象,而非HttpRequest类
    rendered_content = template.render({'a': 'b'}, request)
    return HttpResponse(rendered_content)

如果你的模板不需要调用请求上下文里的变量,也可以省略第二个参数,直接写template.render({'a': 'b'})即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:39:02