【问题标题】:How to skip validation in django model serializers?如何在 django 模型序列化程序中跳过验证?
【发布时间】:2021-12-08 13:20:52
【问题描述】:

这是一个普遍的问题。 我有一个代码,我在其中实现了序列化程序的验证。现在,当我发出post 请求并通过is_valid 函数验证数据时,它应该运行validate 方法。但是当我发出patch 请求时,它会再次验证数据。我想跳过这部分,因为在我的validate 函数中,我正在使用客户端在post 请求期间而不是在patch 请求期间发送的一些字段来验证数据。我不知道如何处理这个问题。有人可以帮我吗?

【问题讨论】:

    标签: django django-rest-framework django-serializer


    【解决方案1】:

    一个解决方案是比较view.action == partial_update

    例子:

    
    if view.action == 'partial_update':
        return attrs
    
    

    【讨论】:

      【解决方案2】:

      在序列化器验证方法中,您可以跳过验证,如:

      def validate(self, data):
          # self.partial will be True if the request type is patch
          if self.partial:
              return
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多