DjangoRestFramework ModelSerializer игнорирует необходимые дополнительные данные
У меня есть некоторый ModelSerializer, например:
class MySerializer(serializers.ModelSerializer):
x = serializer.IntegerField(required=True, write_only=True)
class Meta:
model = MyModel
fields = (...some MyModel fields..., 'x')
x не является полем MyModel.
Проблема: когда я отправляю запрос без x в form_data, drf не выдает ошибку "required". Ожидается: 400 ответ с сообщением о пропуске 'x' is required.
Я могу написать его самостоятельно, но это похоже на неопределенное поведение или я пропустил что-то в документации.
Это может помочь blank является ключом для сообщений об ошибке dict, который применим для пустых полей, поэтому первоначально размещено здесь:
class MySerializer(serializers.ModelSerializer):
x = serializer.IntegerField(required=True, write_only=True)
class Meta:
model = MyModel
fields = (...some MyModel fields..., 'x')
extra_kwargs = {'x': {'error_messages': {'blank': 'New blank error message'}}}
Решено - проблема была во флаге partial=True
.