TypeError: context must be a dict rather than Context.

2023-12-27 19:32

本文主要是介绍TypeError: context must be a dict rather than Context.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 TypeError: context must be a dict rather than Context.


解释:模板渲染中传入的内容只能是字典,不能是Context对象类型。(1.11.4版本)

我的源码:

#_*_coding:utf-8_*_
from django.http import HttpResponse
from django.template import loader, Contextaddress = [('张三', '地址一'), ('李四', '地址二') ]def output(request, filename):response = HttpResponse(content_type='application/ms-excel')response['Content-Disposition'] = 'attachment; filename=%s.xls' % filename# 拿到模板文件创建一个模板对象t = loader.get_template('xls.html')# 把数据生成一个字典集对象c = Context({'data': address,})# 把数据填充到模板,并且写入到response中response.write(t.render(c))return response

源码来源于 Django step by step.

问题主要出在版本上,1.1版本中可以直接传入Context对象,在1.11后只能传入字典,我们打开路径查看一下源码。路径为:

blog/lib/python2.7/site-packages/django/template/django.py, 这里的blog是我的虚拟空间的名称,由于我用的是virtualenv虚拟空间。

正常安装的Mac的路径是/Library/Frameworks/python.framework/Versions/2.7/lib/python2.7/site-packages/django/template/django.py



我们找到这个方法在template/context.py 文件中


对参数进行了判断,只要不是字典类型就抛出异常。


2 修改代码,直接以字典的形式传入数据。

#_*_coding:utf-8_*_
from django.http import HttpResponse
from django.template import loader, Contextaddress = [('张三', '地址一'), ('李四', '地址二') ]def output(request, filename):response = HttpResponse(content_type='application/ms-excel')response['Content-Disposition'] = 'attachment; filename=%s.xls' % filename# 拿到模板文件创建一个模板对象t = loader.get_template('xls.html')# 把数据填充到模板,并且写入到response中response.write(t.render({'data':address}))return response

运行代码进行访问,正确执行,弹出下载提示框。





这篇关于TypeError: context must be a dict rather than Context.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/544115

相关文章

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

context:component-scan使用说明!

<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 --> <context:component-scan base-package="com.yuanls"/> 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controll

React的context学习总结

context是干什么的?为什么会存在这么一个东西? context字面意思是上下文,在react中存在是为了解决深层次组件传值困难的问题 这里涉及到组件的传值问题,大体商说分三总:兄弟间传值(通过父组件),父往子传值(通过props),子往父传(props函数回调),这是基础的传值问题,但是如果组件嵌套的太深,那么传值就变的非常麻烦,为了解决这样的问题才产生了context  这是cont

Python 错误 TypeError 解析,实际错误实例详解 (五)

文章目录 前言TypeError:‘DataFrame’ object is not callable 错误常见的错误发生场景一、错误地使用小括号而非方括号来访问列二、意外地将函数名覆盖为 DataFrame三、 在方法链中错误地使用小括号 小结 Python 中错误 TypeError: 'NoneType' object is not subscriptablePython 中的 Non

兔子--The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) from the type

notification.setLatestEventInfo(context, title, message, pendingIntent);     不建议使用 低于API Level 11版本,也就是Android 2.3.3以下的系统中,setLatestEventInfo()函数是唯一的实现方法。  Intent  intent = new Intent(

Error: label vector and instance matrix must be double的解决方法

在使用uci下载的数据时,建模时出现这个错误的解决方法 首先现在UCI上面下载数据 然后右键另存为就行了。这样我们就从UCI里面下载到了训练数据 在matlab 点 导入数据,数据类型要记得选第二个, 如果选择最后一个table就会出现这个问题 最后附上代码 %%之前先import wine.date IMPORTED DATA 设为Numeric Matrix (数值矩

TypeError:未绑定方法

TypeError: unbound method 错误通常发生在类方法被调用时,但没有正确绑定到实例。这通常意味着你试图在类本身上调用一个实例方法,或者没有使用正确的方式创建类实例。 1、问题背景 某位开发者在尝试创建一个类似于经典的 Pratt 递归下降解析器时遇到了 “TypeError: unbound method” 的错误。在简化了代码之后,开发者发现问题出在对中缀运算符的处理

大语言模型的上下文窗口(Context Windows):对人工智能应用的影响

大语言模型(LLMs)极大地提升了人工智能在理解和生成类人文本方面的能力。其中一个影响其效用的基本方面是它们的 “上下文窗口”—— 这个概念直接影响着这些模型接收和生成语言的有效性。我将深入探讨上下文窗口是什么、它们对人工智能应用的影响以及组织在利用大语言模型时的一些考量。 澳鹏在提升大语言模型开发方面处于领先地位,提供一系列对超越当前性能基准至关重要的服务。我们专注于大语言模型创建的复杂细节,

vue3 antdv3 TypeError: date1.isAfter is not a function的解决

1、先上个报错的图: 2、这个一看是因为date报错的问题,这里面用了TimeRangePicker. const TimeRangePicker = TimePicker.TimeRangePicker; import dayjs, { Dayjs } from 'dayjs'; let time1 = [dayjs(dayjs(new Date()).format('YYYY-

前端面试:对BFC规范(块级格式化上下文:block formatting context)的理解

块级格式化上下文(BFC)是一个独立的渲染区域,具有特定的布局规则。理解BFC对于前端开发非常重要,因为它影响元素的布局和定位。以下是对BFC的一些关键理解: 定义:BFC是一个HTML文档中的部分区域,内部的元素在该区域内独立于外部元素进行布局。BFC的创建可以通过特定的CSS属性,如overflow(非visible)、display: flow-root、position: absolut