gpt4 book ai didi

python - “图像”对象没有属性 '_committed'

转载 作者:行者123 更新时间:2023-12-04 16:03:09 24 4
gpt4 key购买 nike

我正在尝试将我的图片调整为 124*124 大小。我搜索了很多并找到了一些相关问题的解决方案。但即使我的问题没有解决。

我的模型

class MyUsers(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,
related_name='user')
image = models.FileField(upload_to='static/photo', blank=True)
name = models.CharFiled(max_length=150)

def __str__(self):
return self.name

我的看法

def change_user_photo(request, id):
if request.method == "POST":
new_pic = request.FILES['new']
if new_image:
my_user = MyUser.objects.get(id=id)
image = Image.open(new_pic)
image = image.resize((124,124), Image.ANTIALIAS)
my_user.image = image
my_user.save()
return HttpResponseRedirect(reverse('my_profile'))
else:
user = get_photo(id)
return render(request, "photo/edit.html",
{"users":user})

我的模板:

 <form method="POST" enctype="multipart/form-data" id="formUpload">
{% csrf_token %}
<div class="form-group">
<label>New Photo:</label>
<input type="file" name="new"/>
</div>
<hr/>
<div class="form-group">
<button type="submit" class="btn btn-sm btn-
success">Update</button>
</div>
</form>

最佳答案

image = models.FileField() 只接受 Fileupload 对象,而您正在传递 image object 。

def image_resize(self, field):

if field:
image = Img.open(field)
image = image.convert('RGB')
image = image.resize((800, 800), Img.ANTIALIAS)
output = io.BytesIO()
image.save(output, format='JPEG', quality=85)
output.seek(0)
return InMemoryUploadedFile(output, 'ImageField',
field.name,
'image/jpeg',
sys.getsizeof(output), None)
else:
return None

InMemoryUploadedFile 在 django.core.files.uploadedfile 中可用。转换文件上传对象中的图像

关于python - “图像”对象没有属性 '_committed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55005202/

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