Django REST Serializer 使所有字段 allow_null 或不需要

标签 django django-rest-framework django-serializer

我需要在模型中的所有字段(超过 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},

最佳答案

关于这个主题的一种方法可以像下面的代码片段一样作为 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()}

关于Django REST Serializer 使所有字段 allow_null 或不需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64529349/

相关文章:

python - HttpResponse Django 不更改文件名

django - 使用 native 序列化器 Django 将数据序列化为 json 格式

python - SOCIAL_AUTH_CREATE_USERS 的问题

python - django rest 3.1.1 - 具有 "many"属性的一对多序列化器

python - 迁移 : django. db.utils.IntegrityError 时出错:列 "primary_language_id"包含空值

python-3.x - 如何在 django-rest_framework-knox LoginView 中自定义

python - DRF获取OneToOne模型的所有字段

python - 如何使用模型序列化程序序列化 django-rest 中的一对多关系?

python - 如何强制从 python 站点包导入库?

javascript - 用 jQuery 替换 Django 中的图像