@ilya_chch

Как управлять полем сериализатора Django Rest Framework?

# models.py:

class SomeModel(models.Model):
    name = models.CharField(max_length=100)
    can_use_all = models.BooleanField(default=False)

class RelatedModel(models.Model):
    parent = models.ForeighKey('SomeModel', related_name='related_obj')
    data = models.TextFields()

# serializers.py
class RelatedSerializer(serializers.ModelSerializer):
    class Meta:
        model = RelatedModel
        fields = '__all__'

class SomeSerializer(serializers.ModelSerializer):
    related_obj = RelatedSerializer(many=True, read_only=True)
    
    class Meta:
        model = SomeModel
        fields = '__all__'


Как сделать так, чтобы если у SomeModel can_use_all == True, у сериализатора SomeSerializer в поле related_obj были все объекты RelatedModel, а не только те, что указывают на данный объект?
  • Вопрос задан
  • 432 просмотра
Решения вопроса 1
@ilya_chch Автор вопроса
Как выяснилось, самый простой и надежный способ - Сделать второй сериализатор, который бы отдавал все объекты. а в представлении переопределить метод get_serializer, который бы подсовывал нужный сериализатор
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы