Отображение дочернего запроса в админ-панели Django

У меня есть различные вариации в модели атрибутов с помощью tabularinline:

class Attribute(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=250, unique=True)
    description = models.TextField(null=True, blank=True)


    def __str__(self):
        return self.title
class Variations(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=250, unique=True)
    description = models.TextField(null=True, blank=True)
    image = models.ImageField(upload_to='variations', null=True, blank=True)
    attribute = models.ForeignKey(Attribute, null=True, on_delete=models.SET_NULL, related_name='variation')


    def __str__(self):
        return self.title

Теперь я создал отношение Модель продукта с атрибутами:

class Product(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=250, unique=True)
    description = RichTextUploadingField(null=True)
    short_description = RichTextUploadingField(null=True)
    regular_price = models.IntegerField()
    sale_price = models.IntegerField(null=True, blank=True)
    sku = models.CharField(max_length=200, null=True, blank=True)
    dimenstions = models.CharField(max_length=200, null=True, blank=True)
    stock_quantity = models.IntegerField(default=0)
    category = models.ManyToManyField(Category, related_name='category')
    tag = models.ManyToManyField(Tags, related_name='tag')
    attributes = models.ManyToManyField(Attribute, through='ProductVariation', related_name='products')
    image = models.ImageField(upload_to='shop/image', null=True, blank=True)
    # tax_class = pass
    # shiping_class = pass
    # related_product = pass
    # variation = pass


    def __str__(self):
        return self.title
    
    def thumbnail_tag(self):
        return format_html(
            "<img width=100 height=75 style='border-radius: 5px;' src='{}'>".format(self.image.url))

    thumbnail_tag.short_description = "Thumbnail"


class ProductVariation(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    attribute = models.ForeignKey(Attribute, on_delete=models.CASCADE)


    def __str__(self):
        return f"{self.product} - {self.attribute_value}"

Теперь я хочу, чтобы, когда пользователи выбирают атрибут 1, показать им в другом поле все вариации этого атрибута и сделать это для разных атрибутов с разными вариациями. Например, когда я хочу добавить новый продукт в админ-панели, если я выбираю атрибут цвета, покажите мне другое поле цвета, который я имею в этом атрибуте

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