gpt4 book ai didi

python - 无法将 InMemoryUploadedFile 保存到 Django 中的模型

转载 作者:行者123 更新时间:2023-12-01 04:25:42 26 4
gpt4 key购买 nike

我有以下模型:

class IdentifierImage(models.Model):
super = models.ForeignKey(Super)
identifier = models.CharField(null=False, blank=False, max_length=32, db_index=True)
image = models.ImageField(upload_to='/identifierimages/%Y/%m/', blank=True, null=True, )

class Meta:
unique_together = (
('survey', 'identifier'),
)

我还有一个上传图像文件的表单(不是ModelForm,也永远不会),我将其作为InMemoryUploadedFile获取。 。来自Super类我创建 IdentifierImage对象并尝试保存它:

def save_identifier_image(identifier, image):
identifier_image, created = self.identifierimage_set.update_or_create(identifier=identifier)
<logics to remove old images, disabled for current tests>
identifier_image.image.save(image.name, image)

,其中identifier是一个有效的字符串,并且 imageInMemoryUploadedFile .

但是保存InMemoryUploadedFile模型失败,显示 SuspiciousFileOperation ,并向我显示:连接的路径 (C:/</identifierimages/%Y/%m/> ) 位于基本路径组件 ( <MEDIA_ROOT> ) 的外部。

为什么会发生这种情况?

为什么它尝试保存在C:/下而不是在媒体根目录下?或者发生了完全不同的事情?

最佳答案

您可能想尝试在 ImageField 的 upload_to 路径中不使用前导斜杠:

>>> os.path.join("/whatever", "/else")
'/else'

关于python - 无法将 InMemoryUploadedFile 保存到 Django 中的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33173862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com