Answers for "image_file = models.ImageField(upload_to='images') image_url = models.URLField()"

0

image_file = models.ImageField(upload_to='images') image_url = models.URLField()

from django.db import models
from django.core.files import File
from urllib.request import urlopen
from tempfile import NamedTemporaryFile

class Item(models.Model):
    image_file = models.ImageField(upload_to='images')
    image_url = models.URLField()

    def save(self, *args, **kwargs):
        if self.image_url and not self.image_file:
            img_temp = NamedTemporaryFile(delete=True)
            img_temp.write(urlopen(self.image_url).read())
            img_temp.flush()
            self.image_file.save(f"image_{self.pk}", File(img_temp))
        super(Item, self).save(*args, **kwargs)
Posted by: Guest on August-24-2021

Python Answers by Framework

Browse Popular Code Answers by Language