#python #django #view #model
#python #django #Вид #Модель
Вопрос:
Я пытаюсь загрузить несколько изображений в свою базу данных с помощью Django. Я бы хотел, чтобы каждый файл хранился отдельно как внешний ключ к основному продукту. Итак, в основном я имею в виду, что будут продукты, а затем у каждого продукта будет несколько внешних ключей, которые являются изображениями. Django вообще не сохраняет изображения в базе данных. Вот мой код:
class product(models.Model):
title = models.CharField('', max_length=100, db_index=True)
price = models.CharField('', max_length=100, db_index=True)
description = models.CharField('', max_length=100, db_index=True)
class productimage(models.Model):
product = models.ForeignKey(product, on_delete=models.CASCADE)
product_images = models.FileField(blank=True)
if request.method == "POST":
title = request.POST.get("title")
price = request.POST.get("price")
description = request.POST.get("description")
products = product(title=title,description=description,price=price)
products.save()
for image in request.FILES.getlist("images"):
product_images = image
products.productimage_set.create(product_images = product_images)
return render(request,'selling/addproduct.html')
Итак, в основном я хотел бы, чтобы у каждого продукта был список изображений, сохраненных как внешний ключ к основному продукту.
Ответ №1:
Я думаю, вы немного сбиты с толку — использование _set
суффикса предназначено для получения списка внешних ключей путем обратного обхода. Чтобы создать их, вы можете просто создавать каждый по productimage
одному за раз, а затем использовать их _set
.
Пример:
...
for image in request.FILES.getlist("images"):
productimage.objects.create(product=product, product_images=image)
...
а затем получить изображения через product
экземпляр:
product.product_images_set.all()
Комментарии:
1. Изображения по-прежнему не добавляются в базу данных
2. Вы обязательно добавили
enctype=“multipart/form-data”
в свой тег формы?3. Оказывается, я забыл это добавить. Спасибо!