引发异常和 return 响应
raise exception and return response
我需要在序列化程序的 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
它引发异常,但是 服务器错误。
如何引发异常并安全地return向API响应发送一些消息?
你应该提出 ValidationError
而不是:
class SampleSerializer(serializers.ModelSerializer):
class Meta:
fields = '__all__'
model = SampleModel
def validate(self, attrs):
foo_value = attrs['foo']
if foo_value > 100:
raise <b>serializers.ValidationError</b>("foo_value cant be grater than 100")
return attrs
然后,如 documentation 中所述,默认情况下会引发 HTTP 400 Bad
请求响应。
我需要在序列化程序的 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
它引发异常,但是 服务器错误。
如何引发异常并安全地return向API响应发送一些消息?
你应该提出 ValidationError
而不是:
class SampleSerializer(serializers.ModelSerializer):
class Meta:
fields = '__all__'
model = SampleModel
def validate(self, attrs):
foo_value = attrs['foo']
if foo_value > 100:
raise <b>serializers.ValidationError</b>("foo_value cant be grater than 100")
return attrs
然后,如 documentation 中所述,默认情况下会引发 HTTP 400 Bad
请求响应。