有没有办法使用 django pre_save信号将上传的 excel 文件转换为 CSV?



我想知道是否可以使用 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(),其中包含您从其中一个转换的内容。

最新更新