Django REST串行化器使所有字段allow_null或不需要

fhg3lkii  于 2022-12-20  发布在  Go
关注(0)|答案(1)|浏览(123)

我需要对模型中的所有字段(超过20个字段)应用extra_kwargs,除了一两个字段。
我知道一个方法是:

class MySerializer(serializers.ModelSerializer):
     field1 = serializers.CharField(allow_null=True,required=False)

class MySerializer(serializers.ModelSerializer):
     class Meta:
          model = MyModel
          fields = '__all__'
        extra_kwargs = {
            'field1': {'required': False, 'allow_null': True},}

但是当我不得不一个接一个地应用到每个领域时,效率就太低了。
有什么能帮我做到这一点吗?

extra_kwargs = {
            '__all__': {'required': True, 'allow_null': False},
rekjcdws

rekjcdws1#

关于这个主题的一种方法可以像下面的代码片段MySerializer类:

class MySerializer(serializers.ModelSerializer):
    class Meta:
        model = MyModel
        fields = '__all__'
        extra_kwargs = {field.name:{'required': False, 'allow_null': True} for field in MyModel._meta.get_fields()}

相关问题