Django序列化程序更新所有

时间:2018-04-03 23:58:52

标签: python django django-rest-framework django-views

在我的序列化程序中添加更新定义时,是否必须将每个字段放入或者是否有办法执行“任何”或“全部”?

def update(self, instance, validated_data):
    instance.id = validated_data.get('id', instance.id)
    instance.user.id = validated_data.get('user_id', instance.user.id)
    instance.city = validated_data.get('city', instance.city)
    # instance all fields?
    instance.save()
    return instance

1 个答案:

答案 0 :(得分:1)

  1. 第一个不应像id那样更新的pop键。

    for key, value in validated_data.items(): setattr(instance, key, value) instance.save()

  2. 使用循环。

    <root> <row> <field1>720</field1> <field2>8900</field2> <field3>100</field3> </row> <row> <field1>720</field1> <field2>99998</field2> <field3>120</field3> </row> <row> <field1>720</field1> <field2>8900</field2> <field3>130</field3> </row> <row> <field1>720</field1> <field2>12403</field2> <field3>130</field3> </row> </root>