django rest framwork在模型序列化程序中迭代通过字段
问题描述:
我想遍历ModelSerializer中的字段并希望使这些字段成为必需字段。这不起作用。我怎样才能做到这一点。有人请帮助我。django rest framwork在模型序列化程序中迭代通过字段
class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model = Customer
fields = ("email", "phone_no", "full_name", "landline_no")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields:
self.fields[field].required = True
self.fields[field].allow_blank = False
答
可以在元类中添加额外的args作为一个ModelSerializer,像这样:
class Meta:
model = Customer
fields = ("email", "phone_no", "full_name", "landline_no")
extra_kwargs = {'email': {'required': True, 'allow_blank': False}}
如果你需要这个的所有字段,那么你应该重新考虑Customer
模型中的各个领域。您可以添加blank=False
和/或null=False
。 Rest框架在创建ModelSerializer时需要考虑这些信息
您是否试过'超级(CustomerSerializer,self).__ init __(* args,** kwargs)'? – zaidfazil
@zaidfazil它是蟒蛇3.它会工作 – tstudent
调用'super()'就像这是推荐的方式。试试吧!我已经在我的机器上尝试过了,它工作正常。另外,你的意思是“不工作”,有没有错误? – zaidfazil