From ae94c2f484308a86ac06b1be261b8b7cc19b1171 Mon Sep 17 00:00:00 2001 From: Henry Clifford Date: Fri, 14 Feb 2014 12:54:43 -0500 Subject: [PATCH] abstract to save_serializer_data example --- rest_framework/fields.py | 2 ++ rest_framework/serializers.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 0c3817b57..24aaf80ba 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -342,6 +342,8 @@ class WritableField(Field): """ return value + def save_serializer_data(self, instance, field_name, data): + setattr(instance, field_name, data) class ModelField(WritableField): """ diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 8d2e0feb8..d8ea02ba3 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -904,7 +904,8 @@ class ModelSerializer(Serializer): if getattr(obj, '_m2m_data', None): for accessor_name, object_list in obj._m2m_data.items(): - setattr(obj, accessor_name, object_list) + field = obj._meta.get_field_by_name(accessor_name)[0] + field.save_serializer_data(obj, accessor_name, object_list) del(obj._m2m_data) if getattr(obj, '_related_data', None):