【问题标题】:django rest framwork iterate throug fields in model serializerdjango rest框架遍历模型序列化器中的字段
【发布时间】:2018-01-01 08:01:40
【问题描述】:

我想遍历 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

【问题讨论】:

  • 你试过super(CustomerSerializer, self).__init__(*args, **kwargs) ??
  • @zaidfazil 它是 python 3。它会工作
  • 像这样调用super() 是推荐的方式。一定要试一试!..我在我的机器上也试过了,效果很好。还有,你说的not working是什么意思,有什么错误吗?

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


【解决方案1】:

您可以在 Meta 类中为 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 时会考虑这些信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-07
    • 2012-11-16
    • 2020-12-24
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2016-05-09
    相关资源
    最近更新 更多