Python Django模型&x27;图像';对象没有属性'_承诺';
我在Django面临这个错误Python Django模型&x27;图像';对象没有属性'_承诺';,python,django,Python,Django,我在Django面临这个错误 'Image' object has no attribute '_committed' 这是我的模型: class ProcessedPicture(models.Model): processed_picture = models.ImageField(upload_to='processed_pictures') 然后我对图片进行处理,并按如下方式分配: def do_something(): ............... rgb =
'Image' object has no attribute '_committed'
这是我的模型:
class ProcessedPicture(models.Model):
processed_picture = models.ImageField(upload_to='processed_pictures')
然后我对图片进行处理,并按如下方式分配:
def do_something():
...............
rgb = Image.fromarray(image)
return rgb
然后,我只是尝试将结果保存到S3存储器中。没有表格,没有要求,什么都没有:
score = do_something()
processed = ProcessedPicture()
processed.processed_picture = score
processed.save()
并且由于上述错误而失败。各位有什么想法吗
然后,我只是尝试将结果保存到S3存储器中
这不是文件字段
/图像字段
的界面工作方式。您不能仅将图像
分配给字段。实际上,当您保存图像时,您不仅拥有“图像数据”,还拥有文件名等。您可以将其存储在一个内存流中,然后将其包装在一个名为的临时文件中:
from django.core.files import File
from django.core.files.temp import NamedTemporaryFile
with NamedTemporaryFile(delete=True) as img_tmp:
score = do_something()
score.save(img_tmp, format='JPEG')
img_tmp.flush()
processed = ProcessedPicture()
processed.processed_picture.save('name_of_the_file.jpg', File(img_tmp))
processed.save()
从django.core.files导入文件
从django.core.files.temp导入名为temporaryfile
将NamedTemporaryFile(delete=True)作为img_tmp:
得分=做某事
score.save(img_tmp,format='JPEG')
img_tmp.flush()
已处理=已处理图片()
processed.processed_picture.save('name_of_the_file.jpg',file(img_tmp))
已处理。保存()
然后,我只是尝试将结果保存到S3存储器中
这不是文件字段
/图像字段
的界面工作方式。您不能仅将图像
分配给字段。实际上,当您保存图像时,您不仅拥有“图像数据”,还拥有文件名等。您可以将其存储在一个内存流中,然后将其包装在一个名为的临时文件中:
from django.core.files import File
from django.core.files.temp import NamedTemporaryFile
with NamedTemporaryFile(delete=True) as img_tmp:
score = do_something()
score.save(img_tmp, format='JPEG')
img_tmp.flush()
processed = ProcessedPicture()
processed.processed_picture.save('name_of_the_file.jpg', File(img_tmp))
processed.save()
从django.core.files导入文件
从django.core.files.temp导入名为temporaryfile
将NamedTemporaryFile(delete=True)作为img_tmp:
得分=做某事
score.save(img_tmp,format='JPEG')
img_tmp.flush()
已处理=已处理图片()
processed.processed_picture.save('name_of_the_file.jpg',file(img_tmp))
processed.save()
我认为这里的问题是,您正在传递一个img对象并试图存储在DB中,事实上DB只存储img的名称,而不是img本身,尝试传递文件而不是OBJ。您不能将分数
分配给图像字段,或者至少不能直接分配。你需要将它包装在一个字段文件中
。我认为这里的问题是,你正在传递一个img对象并试图存储在DB中,事实上DB只存储img的名称,而不是img本身,尝试传递文件而不是obj。你不能将分数
分配给图像字段
,或者至少不能直接分配。您需要将其包装在字段文件中
。谢谢,伙计。我明白了,它成功了。干杯,伙计。我明白了,它成功了。干杯