Как реализовать слагирование в DRF?
СУТЬ ВОПРОСА : lorem.com/category_slug/
Должен возвращать на фронт queryset product отфильтрованный по category__slug='category_slug'. Как это реализовать? В пример желаемого поведения хочу привести каталог 21vek.by
Модели Product, Category. Отношение M2M.
class Category(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(max_length=255, db_index=True)
parental_category = models.ManyToManyField('self',
blank=True,
verbose_name='Категория-родитель',
)
def __str__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length=150, db_index=True,
verbose_name='Название')
slug = models.SlugField(max_length=150, db_index=True)
category = models.ForeignKey(Category,
related_name='category',
null=True,
blank=True,
verbose_name='Категория',
on_delete=models.SET_NULL,
)
def __str__(self):
return self.name
Serializers
class ProductSerializer(serializers.ModelSerializer):
category = CategorySerializer(many=True, read_only=True)
class Meta:
model = Product
fields = ['id','name','slug',
'category']
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ['name', 'parental_category']