ValidationError我在验证我的clean方法中的数据时抛出models.py. 如何在我的自定义create方法中捕获此错误,以便它以这种方式抛出包含错误详细信息的 json 对象{ "detail":"input is not valid"}#models.pyclass Comment(models.Model): text = models.CharField(max_length=256) commenter = models.ForeignKey(User, on_delete=models.SET_NULL) post = models.ForeignKey(Post, on_delete=models.SET_NULL) def clean(self, *args, **kwargs): if containsBadWords(text): raise ValidationError(_("Be Polite"))#serializer.pydef create(self, validated_data): request = self.context.get('request', None) commenter = request.user try: obj = Comment.objects.create( post = validated_data['post'], commenter = commenter, text = validated_data['text'] ) except ValidationError as ex: raise ex return obj
1 回答

慕雪6442864
TA贡献1812条经验 获得超5个赞
检查你是否抛出了serializers.ValidationErrornot ValidationErrorof django.core.exceptions。您可以通过以下方式更改您的create方法:
def create(self, validated_data):
request = self.context.get('request', None)
commenter = request.user
try:
obj = Comment.objects.create(
post = validated_data['post'],
commenter = commenter,
text = validated_data['text']
)
except ValidationError as ex:
raise serializers.ValidationError({"detail": "input is not valid"})
return obj
添加回答
举报
0/150
提交
取消