Я пытаюсь сохранить изображение из URL-адреса в модель Django.
Когда я пробую этот код, в нижней части изображения появляются серые пиксели, как будто они сохраняются перед чтением всего изображения.
Кто-нибудь знает, что может быть не так с этим кодом, или знает лучший способ сделать это?
def save_image(img_url, img_pk):
file_name = img_url.split('/')[-1]
external_image = requests.get(img_url, stream=True)
if external_image.status_code == 200:
# Create a temporary file
lf = tempfile.NamedTemporaryFile()
# Read the streamed image in sections
for block in external_image.iter_content(1024 * 8):
# If no more file then stop
if not block:
break
# Write image block to temporary file
lf.write(block)
image_obj = Image.objects.get(pk=img_pk)
image_obj.image.save(file_name, files.File(lf))
image_obj.save()
return image_obj