我想知道是否可以使用 django pre_save信号将用户选择的 excel 文件转换为 CSV。假设用户上传"test.xlsx",我想使用 pre_save 信号自动转换该文件。一旦用户上传了文件,它实际上应该在我的FileField中"测试.csv"。
是的,你可以在pre_save
中做到这一点,但最好只是在处理上传的 Django 表单或 DRF 序列化程序中执行此操作。这样,您就可以将转换错误作为验证错误等形式发送给用户。
假设模型中的字段是upload
,您将使用
clean_upload(self, file)
以 Django 形式出现。validate_upload(self, file)
在 DRF 序列化程序中。
只需返回一个新的ContentFile()
,其中包含您从其中一个转换的内容。