我嘗試從url創建一個圖像並將其保存在我的django模型中。如果第一部分工作正常,我不知道如何將生成的文件關聯到我的對象。PIL到Django ImageField
這是我的功能,生成圖像文件:
def get_remote_image(image_url, merchant_product_path):
im = None
name = ''
r = requests.get(image_url, stream=True)
if r.status_code == 200:
name = urlparse(image_url).path.split('/')[-1]
full_path = os.path.join(settings.MEDIA_ROOT, merchant_product_path)
if not os.path.exists(full_path):
os.makedirs(full_path)
im = Image.open(r.raw)
if im.mode != "RGB":
im = im.convert("RGB")
im.thumbnail((500, 500), Image.ANTIALIAS)
im.save(full_path + name, 'JPEG')
return {'im': im, 'name': name}
而現在,部分到此文件關聯到我的對象:
i = get_remote_image(row['pict'], m.get_products_media_path())
obj, created = ProductLine.objects.update_or_create(
...
...
...
)
if i['im'] is not None:
try:
obj.main_picture.save(
i['name'],
ContentFile(i['im']),
save=True)
except TypeError:
continue
此代碼的工作,但不幸的是,畝照片是在正確的文件夾中創建對象創建/更新,但每個都沒有圖片文件:( 有人可以告訴我什麼是錯的嗎?