Метод Serializer Validate () не вызывается в DRF сериализатора - PullRequest
0 голосов
/ 15 октября 2019

В DRF метод сериализатора validate() по умолчанию не вызывается.

Я использую сериализатор следующим образом:

class SampleListView(ListAPIView):
    queryset = Sample.objects.all()
    serializer_class = SampleSerializer
    def list(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())
        serializer = self.get_serializer(queryset, many=True)
        return Response(sorted_result)

class SampleSerializer(serializers.ModelSerializer):
    custom_data = serializers.SerializerMethodField()

    class Meta:
        model = SampleModel
        fields = ('field_1', 'field_2')

    def validate(self, data):
        return data

Выполнение не входит в метод validate () вСериализатор.

У кого-нибудь есть идеи по этому поводу?

1 Ответ

1 голос
/ 15 октября 2019

Shijo Validate() вызывается только при использовании метода сохранения сериализатора, следовательно, используется только для создания и обновления метода API. Как указано в проверке в документации DRF

, вам всегда нужно вызывать is_valid () перед попыткой доступа к проверенным данным или сохранить экземпляр объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...