Django 文件字段编码

2024-01-12

我有一个 django 模型如下:

class ExportFile(BaseExportFile): 
    created_timestamp = models.DateTimeField(auto_now=True, editable=False)
    data = models.FileField(upload_to='exports')

以及呈现模板以创建 csv 文件的视图函数:

def create_csv(request):

        context = Context({'data': MyModel.objects.all()})
        rendered = render_to_string('mytemplate.html', context)

        # create tradefile and save
        cf = ContentFile(rendered)

        tf = ExportFile()
        tf.data.save('myfile.csv', cf)

        tf.save()

        response =  HttpResponse(mimetype='text/csv')
        response['Content-Disposition'] = 'attachment; filename=%s' % 'myfile.csv'
        response.write(rendered)

        return response

该视图不仅将 csv 数据保存到 FileField,还将其返回到浏览器。我遇到的问题是浏览器文件工作正常,但保存在模型上的文件大小是原来的两倍,当我使用 diff 程序时,我可以看到额外的隐藏字符。我认为这一定与 mime 类型与 django 自动保存 utf8 有关,但我就是不明白!


解决了问题!

ContentFile 是 cStringIO.StringIO 的子类 - 它处理 ASCII 编码文件。因此,该字符串需要编码为 ASCII,因为 django 中的所有内容默认都是 UTF8

cf = ContentFile(rendered.encode('ascii'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 文件字段编码 的相关文章

  • 经典的asp字符编码

    我在经典 asp 网站中遇到西班牙字符问题 用户可以在 aspx 页面上的表单中提交他们的姓名 地址 然后 aspx 页面将 ajax post 发送到经典的 asp 页面 它所做的所有操作都存储在我们的 Sql 2008 DB 中 我可以
  • Django dumpdata 和 loaddata 不适用于多对多中介模型

    我在以下模型上将 dumpdata 与 Django 1 2 3 一起使用 class Bar models Model class Foo models Model bars models ManyToManyField Bar thro
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • Pickle django 查询?

    是否可以在数据库中腌制或以某种方式存储 django 查询 这是行不通的 u User objects all import cPickle pickled query cPickle dumps u and store the pickl
  • Rails 3.1、Ruby 1.9.2-p180 和 UTF-8 问题

    我在使用 UTF 8 字符时遇到一些问题 这是 db seeds rb User create username eml first name last name ck email email protected cdn cgi l ema
  • 用于基于类的通用视图的 Django mixin

    我正在尝试实现 Staff member required mixins 以下是我发现的两种方法 First class StaffRequiredMixin object method decorator login required d
  • django 模板 - 如何动态访问变量?

    假设我有一个具有以下上下文的 django 模板 data1 this is data1 data2 this is data2 data name data2 现在我知道了data name 假设它是 data2 是否可以用它来访问变量d
  • Django 多对多关系(类别)

    我的目标是向我的 Post 模型添加类别 我希望以后能够按不同类别 有时是多个类别 查询所有帖子 模型 py class Category models Model categories 1 red 2 blue 3 black title
  • 如何在Django终端后台启动celery

    我开始芹菜作为 python manage py celeryd 它正在工作 但在前台 然后为了测试命令 我需要启动另一个终端并在那里执行操作 有什么办法可以在后台启动它吗 我试过这个 python manage py celeryd 但话
  • Django 独特的不工作

    我在从查询中过滤掉重复项时遇到问题 我正在使用 Django 1 4 和 Postgres 8 4 13 我在我的模型对象上使用这个查询 它是一个 jquery 自动完成 term request GET get term field re
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 如何使用 Python/Django 在 Facebook 中获取(和使用)扩展权限

    我正在尝试编写一个简单的应用程序 让用户授予我的代码写入其页面的 Facebook 流的权限 据我了解 它应该很简单 让用户单击一个按钮 启动一个弹出窗口 其中包含我的 Facebook 应用程序中的页面 在该页面中 他们单击授予的内容流发
  • django post_save 信号和 ManyToManyField (和 Django Admin)

    我的 post save 函数有问题 该函数已正确触发 但实例不包含插入的值 我用ipdb检查了该功能 没有任何问题 只是 ManyToManyField 是空的 代码 receiver post save sender Supplier
  • Django 站点框架初始设置

    我对相当一维的 Django 实现很满意 但现在尝试了解具有共享内容的多站点过程 我已经阅读了 Django 站点框架和有关该主题的许多帖子 但我没有了解如何启动使用相同数据库但以单独域名呈现的第二个站点的基础知识 我有一个非常愉快且按规矩
  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • Django:在 ModelForm 中为外键添加“添加新”按钮

    TL DR 如何在 ModelForm 中为外键添加 添加新 按钮 长版 我在一个项目中使用 Django 1 7 我的 models py 中有这两个模型 class Client models Model name models Cha
  • Django 模型继承、重写字段

    我正在阅读 Python Web Development with Django 一书 我在书中找到了这个例子 class Book models Model title models CharField max length 100 ge
  • 如何在序列化器创建方法中获取 URL Id?

    我有以下网址 url r member P
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li

随机推荐

  • 来自控制台的 ActionCable.server.broadcast 始终返回 0

    我试图让 actioncable 工作 但是当我在 Rails 控制台中发送 ActionCable server broadcast discussion asdf true 时 它总是返回 0 我已经在cable yml 中运行并配置了
  • 如何在 macOS 10.14 上重置 HIDIdleTime

    在过去的几天里 我一直在尝试编写一个应用程序来重置IORegistry gt IOHIDSystem gt HIDIdleTime入口 最终目标是防止其他读取该值的应用程序将用户标记为空闲 这不仅与电源管理或防止睡眠有关 假设沙箱已禁用并且
  • 如何判断我的页面选项卡应用程序安装在哪个 Facebook 页面上 [重复]

    这个问题在这里已经有答案了 可能的重复 如何查明哪个主页安装了我的 Facebook Canvas 应用程序 http facebook stackoverflow com questions 5587784 how can i find
  • Python 字节码在 CPython 中运行究竟如何?

    我试图了解 Python 是如何工作的 因为我一直在使用它 据我了解 当您运行 python script py 之类的东西时 脚本会转换为字节码 然后解释器 VM CPython 实际上只是一个 C 程序 读取 python 字节码并相应
  • 提取最后一次出现模式 C# 后的所有字符

    字符串具有以下模式 1 0 0 0 1 0 0 1 1 0 0 2 我正在寻找一个代码 它将读取最后创建的字符串并将最后一个数字增加 1 并将其保存为新字符串 我该怎么做 此致 Magic 如果您的意图是始终获取特定字符之后的最后一个子字符
  • 在 SYB 中匹配更高种类的类型

    一般来说 我想知道是否有一种方法可以编写一个通用折叠来概括应用一个函数forall键入如下 f forall a Data D a gt D a gt b 给定某种数据类型D为此instance Data D a 可能有限制a 具体来说 考
  • 如何使用JavaScript判断目录中是否存在文件?

    如何使用javascript判断目录中是否存在文件 如果它在服务器上 你可以做一个HTTP头 http www w3 org Protocols rfc2616 rfc2616 sec9 html sec9 4通过 Ajax 请求 并查看
  • PhpStorm v2017.3.4 与 Codeception v2.4.0 不兼容

    我正在努力使代码接收与 PhpStorm 一起工作 我已经设置了 CLI 解释器 我还设置了 Codeception 这是 Codeception 的配置 当我从 PhpStorm 运行测试时 我收到以下信息 在左侧 以及右侧的文字 Tes
  • 实现不同类型数组集合的更好方法

    我正在寻找 C 中的半通用数据结构来存储不同整数和浮点类型的数组 在某些情况下 整数是位字段 其中每个位都同等重要 并且不能容忍精度损失 由于 C 类型系统和我对 C 的不熟练 我发现这既困难又混乱 项目 Ethercat周期性数据包到达并
  • 使用 AppCompat 时如何更改 ActionBar 标题字体

    我想将自定义字体应用于 ActionBar 上显示的应用程序标题 以前我没有使用任何支持库和这个解决方案 int titleId getResources getIdentifier action bar title id android
  • 如何创建/在哪里获取多个实例的 Wix Bootstrapper

    我目前正在学习如何使用 WiX 创建 msi 安装程序 但似乎遇到了困难 当我创建一个包含单个环境所需的所有内容的 MSI 时 一切都很好 我有功能和组件 并且可以安装我的 MSI 现在我正处于想要将其转换为 SQL Server 样式安装
  • R 中邻居的空间数据/计算指标

    我有 xBin yBin value 形式的二维空间数据 例如 DT data table x c rep 1 3 rep 2 3 rep 3 3 y rep c 1 2 3 3 value 100 c 1 9 对于每个垃圾箱 我想计算所有
  • 从 JS 文件中获取 Vue

    我对现代前端开发工具还很陌生 我安装了 Nodejs 和 NPM 下载了一些软件包 例如 jquery 并且一切正常 然后我安装了 Webpack 第 2 版 我创建了这个演示配置文件 module exports entry entry
  • 如何实现四个 i8 元素组的高效 _mm256_madd_epi8 点积?

    Intel 提供了一个名为 mm256 madd epi16 的 C 风格函数 基本上 m256i mm256 madd epi16 m256i a m256i b 将 a 和 b 中的压缩有符号 16 位整数相乘 生成中间有符号 32 位
  • 如何同步远程服务器数据库与本地数据库

    我想在期间获取从远程服务器数据库到本地数据库的单个表的所有详细信息页面加载事件或其他一些好的方法 应该作为后端进程发生 任何人都可以帮助我解决这个问题 1 在桌面和 Web 应用程序中创建的单个应用程序 2 当用户在桌面应用程序中注册新客户
  • Quarkus 自定义授权拦截器

    我有一个 Quarkus 微服务 使用 quarkus oidc 和 quarkus keycloak authorization 扩展通过 Keycloak 进行身份验证和授权 我需要另外实现以下两个请求拦截器 过滤器 任何身份验证逻辑启
  • 如何阻止 ejabberd 使用 mnesia [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在尝试建立一个将数据库从崩溃的服务器恢复到新服务器的过程 我的服务器正在运行 Ejabberd 作为 XMPP 服务器 并且我将其配置为使用 po
  • Sublime Text 中 >= 和 <= 运算符的语法高亮显示

    我正在尝试为 Matlab 运算符获得正确的语法突出显示 gt and lt 目前 仅 lt and gt 被突出显示 而不是 但例如 被突出显示 我看过Matlab tmLanguage文件 以及两者 gt and lt 包含在运算符正则
  • 向 CreateThread 传递多个参数

    问题 How to pass具体来说two论点创建线程 http msdn microsoft com en us library ms682453 VS 85 aspx when 参数一 类型SOCKET 论证二 一个接口指针 COM S
  • Django 文件字段编码

    我有一个 django 模型如下 class ExportFile BaseExportFile created timestamp models DateTimeField auto now True editable False dat