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