aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/serializers.py
diff options
context:
space:
mode:
authorTom Christie2013-12-13 03:06:14 -0800
committerTom Christie2013-12-13 03:06:14 -0800
commita129bdd0f0840176a423a57536837977791080a4 (patch)
tree017f89a5926d4dc7f77dcb062b2de071682e43ca /rest_framework/serializers.py
parent7e7336db919fad673edf1e084203d1c508783010 (diff)
parenta8b15f4290f4bad17d0dd599b8d5c29c155b89e5 (diff)
downloaddjango-rest-framework-a129bdd0f0840176a423a57536837977791080a4.tar.bz2
Merge pull request #1234 from linovia/bugfix/nested_models_without_related_name
Fixed the nested model serializers in case of the related_name isn’t set...
Diffstat (limited to 'rest_framework/serializers.py')
-rw-r--r--rest_framework/serializers.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 0d35fb32..34f31531 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -878,7 +878,7 @@ class ModelSerializer(Serializer):
# Reverse fk or one-to-one relations
for (obj, model) in meta.get_all_related_objects_with_model():
- field_name = obj.field.related_query_name()
+ field_name = obj.get_accessor_name()
if field_name in attrs:
related_data[field_name] = attrs.pop(field_name)
@@ -949,11 +949,12 @@ class ModelSerializer(Serializer):
del(obj._m2m_data)
if getattr(obj, '_related_data', None):
+ related_fields = dict(((f.get_accessor_name(), f) for f, m in obj._meta.get_all_related_objects_with_model()))
for accessor_name, related in obj._related_data.items():
if isinstance(related, RelationsList):
# Nested reverse fk relationship
for related_item in related:
- fk_field = obj._meta.get_field_by_name(accessor_name)[0].field.name
+ fk_field = related_fields[accessor_name].field.name
setattr(related_item, fk_field, obj)
self.save_object(related_item)