Разные характеристики в зависимости от категории/подкатегории

Пишу мелкий проект магазина - барахолки, где стоит реализовать категории, подкатегории и продукты. Получается много веток из каждой категории/подкатегории, но если для них всего одно поле - name, то у продуктов естественно характеристики разные. Если просто строить с одним поле name, выходит так:

class Category(models.Model):
    parent_category = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
    name = models.CharField(max_length=25, verbose_name='Название')

    def __str__(self):
        return self.name


class SubCategory(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='Категория')
    name = models.CharField(max_length=25, unique=True, verbose_name='Название')

    def __str__(self):
        return self.name


class Product(models.Model):
    subcategory = models.ForeignKey(SubCategory, on_delete=models.CASCADE, verbose_name='Подкатегория')
    name = models.CharField(max_length=25, unique=True, verbose_name='Название')

    def __str__(self):
        return self.name
Вернуться на верх