Я создаю сериализатор для представления. Это не 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'
}
Как я могу принудительно использовать возможные поля для отправки из сериализатора?