我使用 django-rest-framework 在 Django 框架内创建 Rest API。并且可以返回任何validationError
除了序列化器方法之外。
但是,我想知道是否有可能返回错误save()
Django的方法model被翻译成 django 休息validationError
?
例如,假设我想限制在特定表上创建对象。像这样:
class CustomTable(models.Model):
... # modles fields go here
def save():
if CustomTable.objects.count() > 2:
# Return a validationError in any serializer that is connected to this model.
Note我可以用raise ValueError
or raise ValidationError
,但它们都会在端点上导致 500 错误。但我想在我的 api 视图中返回一个响应,例如“已达到限制”
The DRF ValidationError
在序列化器中处理,因此您应该在调用模型的保存方法时捕获任何预期的错误并使用它来引发ValiddationError
.
例如,您可以在序列化器的 save 方法中执行此操作:
def save(self, **kwargs):
try:
super().save(**kwargs)
except ModelError as e:
raise serializers.ValidationError(e)
Where ModelError
是您在模型中提出的错误
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)