名称';在MemoryUploadedFile';没有在django模型中定义?

名称';在MemoryUploadedFile';没有在django模型中定义?,django,django-models,python-imaging-library,Django,Django Models,Python Imaging Library,基本上我有一个django模型,它有一个文件字段。我想调整提交的图像的大小,我这里有这样的代码 def save(self, *args, **kwargs): img = Image.open(self.media) output = BytesIO() original_width, original_height = img.size aspect_ratio = round(original_width / original_height) d

基本上我有一个django模型,它有一个文件字段。我想调整提交的图像的大小,我这里有这样的代码

def save(self, *args, **kwargs):
    img = Image.open(self.media)

    output = BytesIO()

    original_width, original_height = img.size
    aspect_ratio = round(original_width / original_height)
    desired_height = 100
    desired_width = desired_height * aspect_ratio

    img = img.resize((desired_width, desired_height))

    img.save(output, format='JPEG', quality=90)
    output.seek(0)

    self.image = InMemoryUploadedFile(output, 'ImageField', "%s.jpg" % self.image.name.split('.')[0], 'image/jpeg', sys.getsizeof(output), None)

    super(Post, self).save(*args, **kwargs)

我得到的错误是“未定义名称'inMemoryPloadedFile'。我该如何解决这个问题?这也是一个附带问题。该模型还可以拍摄视频。如何调整视频的大小?这只是一个次要的问题,记忆中的问题是主要的问题。谢谢大家!

您是否导入了InMemoryUploadedFile

请先导入

从django.core.files.uploadedfile导入MemoryUploadedFile

是否在MemoryUploadedFile中导入

请先导入

从django.core.files.uploadedfile导入MemoryUploadedFile

您不需要在MemoryUploadedFile中使用
来保存文件。此外,由于从未导入错误,因此也会出现错误。要从django.core.files导入它,请导入memoryUploadedFile
。您最好使用
ContentFile

from django.core.files.base import ContentFile

...
def save(self, *args, **kwargs):
    img = Image.open(self.media)

    output = BytesIO()

    original_width, original_height = img.size
    aspect_ratio = round(original_width / original_height)
    desired_height = 100
    desired_width = desired_height * aspect_ratio

    img = img.resize((desired_width, desired_height))

    img.save(output, format='JPEG', quality=90)
    output.seek(0)
    
    self.image.save("%s.jpg" % self.image.name.split('.')[0], ContentFile(output), save=False)
    super(Post, self).save(*args, **kwargs)

您不需要在MemoryUploadedFile中使用
来保存文件。此外,由于从未导入错误,因此也会出现错误。要从django.core.files导入它,请导入memoryUploadedFile
。您最好使用
ContentFile

from django.core.files.base import ContentFile

...
def save(self, *args, **kwargs):
    img = Image.open(self.media)

    output = BytesIO()

    original_width, original_height = img.size
    aspect_ratio = round(original_width / original_height)
    desired_height = 100
    desired_width = desired_height * aspect_ratio

    img = img.resize((desired_width, desired_height))

    img.save(output, format='JPEG', quality=90)
    output.seek(0)
    
    self.image.save("%s.jpg" % self.image.name.split('.')[0], ContentFile(output), save=False)
    super(Post, self).save(*args, **kwargs)

我不知道这是进口货。我在Django文档中做了一些挖掘,说它是一个类,所以我想我需要制作一个,但因为我以前从未使用过它,所以lostI不知道它是一个导入。我在Django文档中做了一些挖掘,并说这是一个类,所以我认为我需要制作一个类,但因为我在迷路之前从未使用过它