0
我需要保存到數據庫之前調整圖像大小,所以我重寫保存方法:Django管理圖片上傳不保存在數據庫
from PIL import Image
class Categorias(models.Model):
image_height = models.PositiveIntegerField(editable=False,null=True)
image_width = models.PositiveIntegerField(editable=False,null=True)
the_image = models.ImageField(upload_to="uploads/image/category",width_field="image_width",height_field="image_height")
def save(self):
if not self.id and not self.the_image:
return;
image = Image.open(self.the_image)
ratio_height = (890*self.image_height)/self.image_width
size = (890,ratio_height)
image = image.resize(size, Image.ANTIALIAS)
image.save(self.the_image.path)
調整圖像的大小和所著到我的媒體文件夾,但問題在於註冊管理機構沒有保存在數據庫中。
我不知道我錯過了什麼。
toad013幫助我,我可以在登記保存到數據庫中,但後來我得到兩個圖像是寫我的媒體文件夾,一個是原始的和另一個與此代碼調整:
def save(self):
if not self.id and not self.the_image:
return;
image = Image.open(self.the_image)
ratio_height = (890*self.image_height)/self.image_width
size = (890,ratio_height)
image = image.resize(size, Image.ANTIALIAS)
image.save(self.the_image.path)
super(Categorias, self).save()
現在登記被保存到數據庫中,但現在我有原始圖像被保存與原來的寬度和高度,調整版本。可能只是有調整大小的版本? –
hmmm刪除image.save(...),並確保「超級」行是在結束和超級之前,只是分配新的調整大小的圖像:「self.image = image.resize(大小,圖像。 ANTIALIAS)「。這樣,你讓Django的做字段的所有保存和更新 – toad013
獲得:類型錯誤在/管理/ imagens/categorias /添加/ 「元組」對象不是可調用 異常值:\t 「元組」對象不是可調用 高清保存(個體經營): \t \t如果不是self.id而不是self.the_image: \t \t \t回報; \t \t圖像= Image.open(self.the_image) \t \t ratio_height =(890 * self.image_height)/self.image_width \t \t \t \t大小=(890,ratio_height) \t \t圖像= image.resize (大小,Image.ANTIALIAS) \t \t#image.save(self.the_image.path) \t \t self.image = image.size(大小,Image.ANTIALIAS) \t \t超級(Categorias,自我).save( ) –