Django 引发异常并返回响应

Django 引发异常并返回响应,django,exception,django-rest-framework,django-serializer,Django,Exception,Django Rest Framework,Django Serializer,我需要在序列化程序的validate()方法中引发异常。所以我做了如下的事情 class SampleSerializer(serializers.ModelSerializer): class Meta: fields = '__all__' model = SampleModel def validate(self, attrs): foo_value = attrs['foo'] if foo_value &

我需要在序列化程序的
validate()
方法中引发异常。所以我做了如下的事情

class SampleSerializer(serializers.ModelSerializer):
    class Meta:
        fields = '__all__'
        model = SampleModel

    def validate(self, attrs):
        foo_value = attrs['foo']
        if foo_value > 100:
            raise ValueError("foo_value cant be grater than 100")
        return attrs
它将引发异常,但作为服务器错误


如何引发异常并安全地向API响应返回一些消息?

您应该引发
验证错误

class SampleSerializer(serializers.ModelSerializer):
    class Meta:
        fields = '__all__'
        model = SampleModel

    def validate(self, attrs):
        foo_value = attrs['foo']
        if foo_value > 100:
            raise serializers.ValidationError("foo_value cant be grater than 100")
        return attrs
class SampleSerializer(serializers.ModelSerializer):
类元:
字段='\uuuu所有\uuuu'
模型=样本模型
def验证(自身、属性):
foo_value=attrs['foo']
如果foo_值>100:
引发序列化程序。验证错误(“foo_值不能大于100”)
返回属性

然后,它将按照默认情况下引发一个
HTTP 400错误的
请求响应中的描述。

您应该引发一个
序列化程序。ValidationError