DjANGO Выборка по категориям (древовидная структура)

Подскажите как сделать чтобы при создание товара можно было выбрать по очерёдно категорию исходя от родителя. например мужское-обувь-кроссовки. или женское-обувь-кроссовки. не зная предварительно точно сколько будет подкатегории. 3 или 4

class Category(MPTTModel):

    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
    name = models.CharField(max_length=255, verbose_name='Имя категории')
    slug = models.SlugField(unique=True)
    image = models.ImageField(blank=True,  null=True, verbose_name='Изображение')

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('category', kwargs={'slug': self.slug})


    class Meta:
        verbose_name = "Категория"
        verbose_name_plural = "Категории"


class Product(models.Model):

    STATUS_PRODUCT = (
        ('Publish', 'Опубликовать'),
        ('Not_to_publish', 'Не публиковать'),
    )

    status = models.CharField(max_length=30, choices=STATUS_PRODUCT, verbose_name='Статус')
    name = models.CharField(max_length=255, verbose_name='Наименование')
    slug = models.SlugField(unique=True, verbose_name='Ссылка')
    description = models.TextField(verbose_name='Описание', null=True)
    shortdescription = models.TextField(verbose_name='Короткое писание', null=True)
    price = models.DecimalField(max_digits=9, decimal_places=2, verbose_name='Цена')
    saleprice = models.DecimalField(max_digits=9, decimal_places=2, verbose_name='Цена по распродаже', null=True)
    instock = models.IntegerField(verbose_name='В наличии', null=True)
    image = models.ImageField(verbose_name='Изображение')
    category = models.ForeignKey(Category, verbose_name='Категория', on_delete=models.CASCADE)
    
    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "Товар"
        verbose_name_plural = "Товары"

Ответы (0 шт):