AttributeError: 'Subject' object has no attribute 'file' when upload file in Django
AttributeError: 'Subject' object has no attribute 'file' when upload file in Django
我正在尝试使用 ImageField 在 Django 中上传文件。我想在上传之前对这个 img 进行哈希处理(使用 ImageHash),并使用哈希文件名保存图像。下面是我的代码,你能帮我解决这个问题吗?
models.py
from utils import hash_image
...
class: Subject(models.Model):
photo = models.ImageField(upload_to=hash_image)
...
工具
def hash_image(instance, filename):
instance.file.open()
ext = os.path.splitext(filename)[1]
image_hash = ''
image_hash = str(imagehash.average_hash(instance.file)) + '.' + ext
return image_hash
错误:
line 34, in hash_image
instance.file.open()
AttributeError: 'Subject' object has no attribute 'file'
你基本上需要一些东西 。并解决您的错误:您的文件是 instance.photo
而不是 instance.file
.
但我不确定它是否可以与 imagehash 一起使用,因为 UploadedFile is not a file-like object. In particular Image.Open 要求对象实现 seek()
而 UploadedFile 不会这样做。我在这里看不到构建 Imagehash 可以使用的 Image 对象的方法,但也许其他人可以。
我正在尝试使用 ImageField 在 Django 中上传文件。我想在上传之前对这个 img 进行哈希处理(使用 ImageHash),并使用哈希文件名保存图像。下面是我的代码,你能帮我解决这个问题吗?
models.py
from utils import hash_image
...
class: Subject(models.Model):
photo = models.ImageField(upload_to=hash_image)
...
工具
def hash_image(instance, filename):
instance.file.open()
ext = os.path.splitext(filename)[1]
image_hash = ''
image_hash = str(imagehash.average_hash(instance.file)) + '.' + ext
return image_hash
错误:
line 34, in hash_image
instance.file.open()
AttributeError: 'Subject' object has no attribute 'file'
你基本上需要一些东西 instance.photo
而不是 instance.file
.
但我不确定它是否可以与 imagehash 一起使用,因为 UploadedFile is not a file-like object. In particular Image.Open 要求对象实现 seek()
而 UploadedFile 不会这样做。我在这里看不到构建 Imagehash 可以使用的 Image 对象的方法,但也许其他人可以。