Serialization 如果初始_数据没有字段名的键,是否调用序列化程序字段级验证?

Serialization 如果初始_数据没有字段名的键,是否调用序列化程序字段级验证?,serialization,django-rest-framework,Serialization,Django Rest Framework,数据字典不包含键my\u字段\u名称 那么,当我调用时,validate\u[my\u field\u name]()方法会被调用吗 data = {...} MySerializer(serializers.Serializer): ... def validate_[my_field_name]() ... 遗憾的是,没有 这是一件让我感到痛苦的事情,通常也是如此。您可以做以下几件事: 声明字段时设置required=True 提供一个默认值=,如果足够的话 序列化

数据字典不包含键
my\u字段\u名称

那么,当我调用时,
validate\u[my\u field\u name]()
方法会被调用吗

data = {...}

MySerializer(serializers.Serializer):
  ...
  def validate_[my_field_name]()
     ...
遗憾的是,没有

这是一件让我感到痛苦的事情,通常也是如此。您可以做以下几件事:

  • 声明字段时设置
    required=True
  • 提供一个
    默认值=
    ,如果足够的话
序列化程序的
validate
方法始终被调用,如果需要,您可以在其中添加一些内容

serializer = MySerializer(data=data)
serializer.is_valid()
class A(Serializer):
   
    must_send = serializers.CharField(required=True)
    
 
    def validate(self, attrs):
        if 'key' not in attrs:
            attrs.setdefault('key', some_calculation())

        # important!
        return attrs