Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型&x27;图像';对象没有属性'_承诺';_Python_Django - Fatal编程技术网

Python Django模型&x27;图像';对象没有属性'_承诺';

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 =

我在Django面临这个错误

'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。你不能将
分数
分配给
图像字段
,或者至少不能直接分配。您需要将其包装在
字段文件中
。谢谢,伙计。我明白了,它成功了。干杯,伙计。我明白了,它成功了。干杯