Как создать набор внешних ключей для каждого файла в списке файлов с помощью django - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь загрузить несколько изображений в свою базу данных с помощью 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 Ответ

1 голос
/ 20 апреля 2019

Я думаю, вы немного сбиты с толку - использование суффикса _set для получения списка иностранных ключей посредством обратного обхода.Чтобы создать их, вы можете просто создать каждый productimage по одному , а затем получить их, используя _set.

Пример:

...
for image in request.FILES.getlist("images"):
    productimage.objects.create(product=product, product_images=image)
...

, а затем получить изображения через product экземпляр:

product.product_images_set.all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...