Как написать Serialazer/View, для полей, значения которых не равны null?
Добрый день. Не совсем понимаю, как реализовать Serialazer/View, а так же фильтрацию, именно под данную задачу.
models.py
class Product(models.Model):
# Обязательная информация.
title = models.CharField('Название', max_length=150, db_index=True)
slug = models.SlugField(max_length=150, unique=True)
price = models.FloatField('Цена')
description = models.TextField('Описание')
category = models.ForeignKey(
Category, verbose_name='Категория', on_delete=models.SET_NULL, null=True)
# Дополнительная.
manufacturer = models.CharField('Производитель',
max_length=150, null=True, blank=True)
country_of_manufacture = models.CharField('Страна производитель',
max_length=100, null=True, blank=True)
type_of_product = models.CharField('Тип',
max_length=50, null=True, blank=True)
material = models.CharField(
'Материал', max_length=50, null=True, blank=True)
floor = models.CharField('Пол', max_length=25,
null=True, blank=True)
condition = models.CharField('Состояние',
max_length=50, null=True, blank=True)
serialazers.py
class ProductListRetrieveSerialazers(serializers.ModelSerializer):
category = CategorySerialazers()
images = ImageSerialazers(read_only=True, many=True)
class Meta:
model = Product
fields = '__all__'
```
*views.py*
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerialazers
http_method_names = ['get']
lookup_field = 'slug'
action_to_serializer = {
'list': ProductListRetrieveSerialazers,
'retrieve': ProductListRetrieveSerialazers
}
def get_serializer_class(self):
return self.action_to_serializer.get(
self.action,
self.serializer_class
)
```