Как сохранить или загрузить изображение из каталога LOCAL в поле ImageField объекта базы данных в DJANGO

я пытался создать несколько продуктов в проекте ecommerce на django и у меня был готов файл данных и я просто хотел в цикле перебросить данные и сохранить в базе данных с помощью Product.objects.create(image='', ...) но я не мог загрузить изображения из локальной директории в базу данных!!!

я пробовал эти способы:

1- первая попытка:

with open('IMAGE_PATH', 'rb') as f:
     image = f.read()

Product.objects.create(image=image)

не работает!!!

2- вторая попытка:

image = open('IMAGE_PATH', 'rb')

Product.objects.create(image=image)

3- третья попытка:

module_dir = dir_path = os.path.dirname(os.path.realpath(__file__))


for p in products:
    file_path = os.path.join(module_dir, p['image'])
    Product.objects.create()



     product.image.save(
            file_path,
            File(open(file_path, 'rb'))
            )

     product.save()

🦋 Бабочка 🦋

После некоторых поисков я нашел ответ. Код, который нужно использовать, будет выглядеть следующим образом:

from django.core.files import File

for p in products:
    product = Product.objects.create()
    
    FILE_PATH = p['image']

    local_file = open(f'./APP_NAME/{FILE_PATH}', "rb")
    djangofile = File(local_file)
    product.image.save('FILE_NAME.jpg', djangofile)
    local_file.close()
from django.core.files import File  
import urllib


result = urllib.urlretrieve(image_url) # image_url is a URL to an image

model_instance.photo.save(
    os.path.basename(self.url),
    File(open(result[0], 'rb'))
    )

self.save()

Получил ответ из здесь

Вернуться на верх