【问题标题】:Unable to save fileattachment into Django Model FileField无法将文件附件保存到 Django 模型文件字段中
【发布时间】:2020-05-07 07:14:59
【问题描述】:

我目前正在将 Exchange 服务器电子邮件集成到我的应用程序中。我可以使用 exchangelib 从我的电子邮件中检索附件。我正在尝试将附件保存到我的 Django 模型文件字段中。但是,它不适用于基于我尝试的不同解决方案的不同错误。任何帮助表示赞赏。谢谢你。以下是我的一些代码:

models.py

class Attachments(models.Model):
    name = models.CharField(max_length=255)
    attachment = models.FileField(upload_to="attachments/")

views.py

for attachment in item.attachments:
        if isinstance(attachment, FileAttachment):
            attachmentlist.append(attachment.name)
            saveattachments = Attachments(
                name=attachment.name,
                attachment=(attachment.content)
                )
            saveattachments.save()

【问题讨论】:

    标签: python django exchangelib


    【解决方案1】:

    请查看以下 sn-p 并尝试在您的代码中执行相同操作

    from django.core.files.base import ContentFile
    ...
    saveattachments = Attachments(name=attachment.name)
    saveattachments.attachment.save(attachment.name, ContentFile(attachment.content))
    saveattachments.save()
    

    【讨论】:

    • 成功了!我可以知道在这种情况下内容文件在做什么吗?非常感谢您的帮助!
    • @AngYangCheng 在这种情况下ContentFile 帮助将字符串attachment.content 转换为save 方法所需的类文件对象
    猜你喜欢
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    相关资源
    最近更新 更多