DRF-序列化程序字段的“源”参数不清楚行为

时间:2018-10-24 13:25:44

标签: django django-rest-framework

因此,请考虑以下事项:

>>> 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是有效的。

为什么不是这种情况?

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

1 个答案:

答案 0 :(得分:3)

反之亦然。 source在python端是什么,字段名称在external / API端。

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

将导致:

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