From c83343cc9d35a42b843647654e80ba6b07f343e9 Mon Sep 17 00:00:00 2001 From: Jirka Vejrazka Date: Mon, 10 Feb 2014 12:29:47 +0100 Subject: [PATCH] Quick fix for issue #1400, HyperlinkedModelSerializer not properly honouring view_name on related models --- rest_framework/serializers.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 38b5089a8..f106d99c1 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -1074,7 +1074,7 @@ class HyperlinkedModelSerializer(ModelSerializer): # .using(db).complex_filter(self.rel.limit_choices_to) kwargs = { 'queryset': related_model._default_manager, - 'view_name': self._get_default_view_name(related_model), + 'view_name': self._get_view_name(related_model), 'many': to_many } @@ -1106,3 +1106,14 @@ class HyperlinkedModelSerializer(ModelSerializer): 'model_name': model_meta.object_name.lower() } return self._default_view_name % format_kwargs + + def _get_view_name(self, model): + """ + Return the view name to use for a model. Uses the one defined in 'Meta', + or default view name. + """ + try: + return model._meta.view_name + except AttributeError: + pass + return self._get_default_view_name(model)