gpt4 book ai didi

python - Django 'File' 对象没有属性 'content_type'

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:06 25 4
gpt4 key购买 nike

我正在定义一个函数,为模型中上传的每张图片创建缩略图。下面是我的代码:

def create_thumbnail(self):
if not self.coverphoto:
return

from PIL import Image
from cStringIO import StringIO
from django.core.files.uploadedfile import SimpleUploadedFile
import os

# Set our max thumbnail size in a tuple (max width, max height)
THUMBNAIL_SIZE = (200,200)

DJANGO_TYPE = self.coverphoto.file.content_type

if DJANGO_TYPE == 'image/jpeg':
PIL_TYPE = 'jpeg'
FILE_EXTENSION = 'jpg'
elif DJANGO_TYPE == 'image/png':
PIL_TYPE = 'png'
FILE_EXTENSION = 'png'
elif DJANGO_TYPE == 'image/gif':
PIL_TYPE = 'gif'
FILE_EXTENSION = 'gif'

# Open original photo which we want to thumbnail using PIL's Image
image = Image.open(StringIO(self.coverphoto.read()))

image.thumbnail(THUMBNAIL_SIZE, Image.ANTIALIAS)

# Save the thumbnail
temp_handle = StringIO()
image.save(temp_handle, PIL_TYPE)
temp_handle.seek(0)

# Save image to a SimpleUploadedFile which can be saved into
# ImageField
suf = SimpleUploadedFile(os.path.split(self.coverphoto.name)[-1],
temp_handle.read(), content_type=DJANGO_TYPE)
# Save SimpleUploadedFile into image field
self.coverphoto_thumbnail.save('%s_thumbnail.%s'%(os.path.splitext(suf.name)[0],FILE_EXTENSION), suf,save=False)

当我运行单元测试时,它显示错误:

'File' object has no attribute 'content_type'

指示的错误行是:

DJANGO_TYPE = self.coverphoto.file.content_type 

因为我从一个旧的 Django 片段中得到了这段代码。我认为这可能是由不同的 django 版本引起的。

我可以知道如何在 Django 1.6 中检查 content_type 吗?

有什么好的方法可以解决问题吗?

谢谢。

最佳答案

    from mimetypes import MimeTypes
import urllib
mime = MimeTypes()
url = urllib.pathname2url(file_name)
mime_type = mime.guess_type(url)

关于python - Django 'File' 对象没有属性 'content_type',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22397637/

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