gpt4 book ai didi

python - Django - AttributeError _committed

转载 作者:行者123 更新时间:2023-11-28 18:33:06 24 4
gpt4 key购买 nike

我有一个保存图像的表单,一切正常,但我希望能够裁剪图像。但是,当我使用 Pillow 执行此操作时,出现了一个奇怪的错误,该错误并没有真正让我继续下去。

Attribute error at /userprofile/addGame/

_committed

进一步查看追溯,突出显示了以下部分:

我不太确定这个错误是什么意思。我认为这与 form.save(committed=False) 有关,并且在那之后无法编辑文件,但我并不肯定。我可以在该行之后使用 form.user = request.user 编辑用户,所以我认为我试图更改上传的图像是问题的一部分。

最佳答案

这是一个旧帖子,但我最近遇到了类似的问题。问题中的信息有些不完整,但我有同样的错误。

假设错误是

文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/PIL/Image.py”,第 627 行,在 __getattr__ 中 引发 AttributeError(名称)

属性错误:_committed

所以根本问题在于使用 PIL (Pillow)。函数:

image = Image.open(self.cleaned_data['image'])

We wrongly assume that the object image would continue to have the instance of image throughout the function(clean_image in my case).

所以在我的代码结构中,

def clean_image(self):
if self.cleaned_data['image']:
try:
image = Image.open(self.cleaned_data['image'])
image.verify()
except IOError:
raise forms.ValidationError(_('The file is not an image'))
return image

执行这段代码后会抛出上面提到的错误。这是因为

After several of the other PIL(pillow) functions we use, we need to open the file again. Check this out in pillow documentation

如上面的代码(最后一行),

返回图片

实际上并没有返回任何东西。

修复它

只需添加 ,

image = self.cleaned_data['image'] 

return image 行之前。代码看起来像,

    except IOError:
raise forms.ValidationError(_('The file is not an image'))
image = self.cleaned_data['image']
return image

关于python - Django - AttributeError _committed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35051929/

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