django Сериализатор остальной структуры допускает дополнительные поля - PullRequest
0 голосов
/ 14 июля 2020

Я создаю сериализатор для представления. Это не ModelSerializer. Этот сериализатор содержит возможные поля для отправки в запросе. Я заметил, что в запросе я могу отправить поля, которые не отображаются в сериализаторе, и он проходит проверку сериализатора.

Например, это сериализатор:

class MySerializer(serializers.Serializer):
    days = serializers.IntegerField(required=False)
    users_list = serializers.ListField(child=serializers.CharField(), required=False)

    class Meta:

        fields = [
            'days',
            'users_list'
        ]

В Просмотр Я делаю это:

class UserValuesViewSet(viewsets.ModelViewSet):
    serializer_class = MySerializer
    
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        return Response(status=status.HTTP_201_CREATED)

Я вижу, что вызывается сериализатор, и при отправке неправильных типов значений я получаю исключение, но при отправке полей, которые не отображаются в 'полях' сериализатора он также проходит проверку.

Например:

data = {
        'days': '7',
        'users_list': ['1234', '123456'],
        'some_key': 'some_value'
    }

Как я могу принудительно использовать возможные поля для отправки из сериализатора?

...