Мой вход Django Admin не позволяет мне добавить более одного изображения

Я пытаюсь сделать Django модель, с Django Rest Framework. Я хочу, чтобы это позволило мне загружать одно или несколько изображений в один вход.

МОДЕЛИ:

from django.db import models
from datetime import datetime
from apps.category.models import Category

from django.conf import settings

class Product(models.Model):
    code = models.CharField(max_length=255, null=True)
    name = models.CharField(max_length=255)
    image = models.ImageField(upload_to='photos/%Y/%m/', blank = True, null=True, default='')
    description = models.TextField()
    caracteristicas = models.JSONField(default=dict)
    price = models.DecimalField(max_digits=6, decimal_places=2)
    compare_price = models.DecimalField(max_digits=6, decimal_places=2)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    quantity = models.IntegerField(default=0)
    sold = models.IntegerField(default=0)
    date_created = models.DateTimeField(default=datetime.now)

    def __str__(self):
        return self.name

class ProductImage(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name = 'images')
    image = models.ImageField(upload_to='photos/%Y/%m/', default="", null=True, blank=True)

СЕРИАЛИЗАТОР:

from rest_framework import serializers
from .models import Product, ProductImage

class ProductImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = ProductImage
        fields = ["id", "product", "image"]

class ProductSerializer(serializers.ModelSerializer):
    images = ProductImageSerializer(many=True, read_only=True)
    uploaded_images = serializers.ListField(
        child = serializers.ImageField(max_length = 1000000, allow_empty_file = False, use_url = False),
        write_only=True
    )
    class Meta:
        model = Product
        fields = [
            'id',
            'code',
            'name',
            'description',
            'caracteristicas',
            'price',
            'compare_price',
            'category',
            'quantity',
            'sold',
            'date_created',
            'images',
            'uploaded_images'
        ]

    def create(self, validated_data):
        uploaded_images = validated_data.pop("uploaded_images")
        product = Product.objects.create(**validated_data)
        for image in uploaded_images:
            newproduct_image = ProductImage.objects.create(product=product, image=image)
        return product

Я просто хотел бы узнать, как сделать так, чтобы следующее поле ввода позволяло мне загружать более одного изображения:

Imagen de referencia input

спасибо вам большое

Вы не опубликовали свою модель admin.py, но я предполагаю, что вам также нужно зарегистрировать свою модель ProductImage как inlines, поскольку вы уже используете отношения One2Many между Product и ProductImage:

В вашем admin.py:

class ProductImageAdmin(admin.StackedInline):
    model = ProductImage

class ProductAdmin(admin.ModelAdmin):
    inlines = [ProductImageAdmin]

    class Meta:
        model = Product


admin.site.register(ProductImage)
admin.site.register(Product, ProductAdmin)

Вы также можете посмотреть этот ответ SO для получения более подробной информации.

Надеюсь, это поможет :)

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