【问题标题】:DRF - Serializer fields "source" argument unclear behaviourDRF - 序列化器字段“源”参数不清楚的行为
【发布时间】:2018-10-24 13:25:44
【问题描述】:

因此,请考虑以下事项:

>>> d = {'macAddress': '00:00:00:00:00:00'}
>>> s = DeviceSerializer(data=d)
>>> s
DeviceSerializer(data={'macAddress':'00:00:00:00:00:00'}):
    mac_address = CharField(max_length=20, source='macAddress')
>>> s.is_valid()
False
>>> s.errors
{'mac_address': [ErrorDetail(string='This field is required.', code='required')]}

根据上面的简单示例和我目前对source 字段参数的理解,我希望mac_address 字段自动映射到输入数据中的macAddress,并且序列化程序是有效的。

为什么不是这样?

感谢任何愿意提供帮助的人:)

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    恰恰相反。 source 是 python 端的内容和外部/API 端的字段名称。

    data = {'mac_address':'00:00:00:00:00:00'}
    

    会导致:

    validated_data == {'macAddress':'00:00:00:00:00:00'}
    

    【讨论】:

    • :facepalm: 非常感谢先生。
    猜你喜欢
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多