From e25cea43a9e7d8d5c787e534ddd139df84772f65 Mon Sep 17 00:00:00 2001 From: eofs Date: Mon, 14 Jan 2013 14:19:19 +0200 Subject: [PATCH] All kind of relations should work now --- rest_framework/serializers.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 4bbae1665..7e9786b4e 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -370,7 +370,9 @@ class ModelSerializer(Serializer): _options_class = ModelSerializerOptions def get_reverse_fields(self, opts, fields): - relations = [obj for obj in opts.get_all_related_many_to_many_objects() if obj.field.serialize] + relations = [] + relations += [obj for obj in opts.get_all_related_objects() if obj.field.serialize] + relations += [obj for obj in opts.get_all_related_many_to_many_objects() if obj.field.serialize] return [rel.field for rel in relations] def get_default_fields(self): @@ -411,7 +413,10 @@ class ModelSerializer(Serializer): if field: if model_field in reverse_fields: - ret[model_field.rel.related_name] = field + # Get user set 'related_name' or automatically set field + # name e.g. 'comment_set' + name = model_field.related.get_accessor_name() + ret[name] = field else: ret[model_field.name] = field