python - 有没有办法使用 django pre_save 信号将上传的 excel 文件转换为 CSV?
问题描述
我想知道是否可以使用 django pre_save 信号将用户选择的 excel 文件转换为 CSV。假设用户上传了“test.xlsx”,我想使用 pre_save 信号自动转换该文件。用户上传文件后,它实际上应该是我的 FileField 中的“test.csv”。
解决方案
是的,您可以在 中pre_save
执行此操作,但最好仅在处理上传的 Django 表单或 DRF 序列化程序中执行此操作。这样,您可以将转换错误作为验证错误等冒泡给用户。
假设模型中的字段是upload
,您将使用
clean_upload(self, file)
在 Django 表单中。validate_upload(self, file)
在 DRF 序列化器中。
只需从其中一个中返回一个ContentFile()
包含您转换后的内容的新内容。
推荐阅读
- firebase - Nuxtjs 在 asyncData 中获取 Firestore 数据
- pycharm - 重命名 PyCharm 项目和目录,如何与 Gitlab 对齐
- plesk - plesk 使用特定目录作为网站的根目录
- opencv - Opencv 从 2 个已知的平行平面获取准确的真实世界坐标
- c - 从 MonetdbLite C API 使用 monetdb_append
- php - 使用 codeigniter 返回数组中的最小值
- python - 如何根据数据框中的样本创建虚拟记录?
- java - 如何绕过需要静态方法的吸气剂?
- xcode - 尝试重建旧版 IOS 应用程序,在 Facebook-IOS-SDK Cocoapod 中出现错误
- django - 如何修改 Djongo ArrayModelField,如 Django Admin 中所示