Django: Только первое изображение попадает в базу данных при каждом экземпляре pickd, хотя все изображения правильно считываются с листа excel
Привет ребята, у меня проблема с извлечением ссылок на изображения из листа excel и сохранением в базу данных в django. Проблема в том, что хотя все ссылки на изображения извлекаются правильно, только первое изображение попадает в базу данных. Например, если Picked является моделью, а PickedImage имеет внешний ключ к Picked. то даже после извлечения всех изображений, только первое изображение попадает в базу данных. если я предоставляю 6 различных изображений в PickedImage для одного экземпляра Picked. Остальные изображения находятся в списке, но не сохраняются в базе данных, вместо этого первое изображение будет сохранено 6 раз.
Вот код, может кто-нибудь помочь.
for pickd in data['pickd']: # loop to create pickd image model instance
if pickd['title'] is None or pickd['title'] == '':
continue
i += 1
try:
if pickd['image1'] is not None:
bulk_image.append(Image(picks=instance[i], images=downloadImage(pickd['image1'], pickd['title']).open(mode='rb'), main=True))
if pickd['image2'] is not None:
bulk_image.append(Image(picks=instance[i],images=downloadImage(pickd['image2'], pickd['title']).open(mode='rb')))
if pickd['image3'] is not None:
bulk_image.append(Image(picks=instance[i],images=downloadImage(pickd['image3'], pickd['title']).open(mode='rb')))
if pickd['image4'] is not None:
bulk_image.append(Image(picks=instance[i],images=downloadImage(pickd['image4'], pickd['title']).open(mode='rb')))
if pickd['image5'] is not None:
bulk_image.append(Image(picks=instance[i],images=downloadImage(pickd['image5'], pickd['title']).open(mode='rb')))
if pickd['image6'] is not None:
bulk_image.append(Image(picks=instance[i],images=downloadImage(pickd['image6'], pickd['title']).open(mode='rb')))
except Exception as e:
continue
try:
images = Image.objects.bulk_create(bulk_image)
except:
raise ValidationError("")
def downloadImage(url, Name):
""" Method to download images from a given url """
try:
image = requests.get(url, stream=True).content
with File(open(f'{Name}.jpg', 'wb')) as handler:
handler.write(image)
with handler.open(mode='rb') as nana:
pass
except Exception as e:
raise ValueError(e)
return handler