【问题标题】:Django stop serialiser save in CreateAPIView overriding pre_saveDjango 停止序列化程序保存在 CreateAPIView 覆盖 pre_save
【发布时间】:2023-03-17 22:15:01
【问题描述】:

在保存序列化器数据之前,我需要根据序列化器数据执行一些验证,并在验证失败时停止保存。我正在使用在 perform_create 方法之前执行的 pre_save 并且我能够进行验证,但我不明白如何停止 serializer.save() 以防这些验证失败。

我可以根据要求提供所需的任何其他详细信息。而且我想坚持使用 CreateApiView,除非它是完全不可避免的。

【问题讨论】:

标签: django-views django-rest-framework


【解决方案1】:

您应该能够调用serializer.is_valid(raise_exception=True),如果序列化程序中出现错误,这将引发异常并停止代码继续执行

如果您使用pre_save() 函数,您总是可以引发解析错误异常,在满足条件时触发:

from rest_framework import exceptions
raise exceptions.ParseError({"error":["Something went wrong"]})

【讨论】:

    猜你喜欢
    • 2019-07-11
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2018-02-28
    • 2017-04-09
    相关资源
    最近更新 更多