如何从本地目录保存或上传图像到DJANGO数据库对象的ImageField



我试图在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()

从这里得到答案

最新更新