django rest framwork在模型序列化器中迭代throug字段

时间:2017-07-26 06:49:23

标签: django python-3.x django-rest-framework

我想遍历ModelSerializer中的字段,并希望使这些字段成为必需。这不起作用。我怎样才能做到这一点。有人请帮助我。

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

1 个答案:

答案 0 :(得分:2)

您可以在Meta类中为ModelSerializer添加额外的args,如下所示:

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

时会考虑该信息