diff options
| author | Tom Christie | 2013-12-13 03:06:14 -0800 |
|---|---|---|
| committer | Tom Christie | 2013-12-13 03:06:14 -0800 |
| commit | a129bdd0f0840176a423a57536837977791080a4 (patch) | |
| tree | 017f89a5926d4dc7f77dcb062b2de071682e43ca /rest_framework/serializers.py | |
| parent | 7e7336db919fad673edf1e084203d1c508783010 (diff) | |
| parent | a8b15f4290f4bad17d0dd599b8d5c29c155b89e5 (diff) | |
| download | django-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.py | 5 |
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) |
