Rez*_*adi 4 django django-models django-serializer django-rest-framework
我使用 django-rest-framework 在 Django 框架内创建 Rest API。并且可以返回validationError序列化器方法之外的任何内容。
save()但是,我想知道是否有可能从django模型的方法返回错误并转换为 django rest 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.
Run Code Online (Sandbox Code Playgroud)
注意我可以使用raise ValueError或raise ValidationError,但它们都会在端点上导致 500 错误。但我想在我的 api 视图中返回一个响应,例如“已达到限制”
DRFValidationError在序列化器中处理,因此您应该在调用模型的 save 方法时捕获任何预期的错误,并使用它来引发ValiddationError.
例如,您可以在序列化器的 save 方法中执行此操作:
def save(self, **kwargs):
try:
super().save(**kwargs)
except ModelError as e:
raise serializers.ValidationError(e)
Run Code Online (Sandbox Code Playgroud)
ModelError您在模型中引发的错误在哪里
| 归档时间: |
|
| 查看次数: |
2306 次 |
| 最近记录: |