aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorMichael Elovskikh2013-02-22 18:50:09 +0600
committerMichael Elovskikh2013-02-22 18:50:09 +0600
commitaa95ccbab79d8270e60bec91c01808c912799ca7 (patch)
tree53d6e2af27aba0ad749e4f664459e2ac1aa68cec /rest_framework
parentef3303eb3702f365aeecb8296592cffa93c4afc7 (diff)
downloaddjango-rest-framework-aa95ccbab79d8270e60bec91c01808c912799ca7.tar.bz2
Fixed UnicodeDecodeError on get_name and get_description methods
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/renderers.py5
-rw-r--r--rest_framework/views.py5
2 files changed, 6 insertions, 4 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py
index 637904c4..bc5d0ed5 100644
--- a/rest_framework/renderers.py
+++ b/rest_framework/renderers.py
@@ -14,6 +14,7 @@ import json
from django import forms
from django.http.multipartparser import parse_header
from django.template import RequestContext, loader, Template
+from django.utils.encoding import force_unicode
from rest_framework.compat import yaml
from rest_framework.exceptions import ConfigurationError
from rest_framework.settings import api_settings
@@ -405,13 +406,13 @@ class BrowsableAPIRenderer(BaseRenderer):
try:
return view.get_name()
except AttributeError:
- return view.__doc__
+ return force_unicode(view.__doc__)
def get_description(self, view):
try:
return view.get_description(html=True)
except AttributeError:
- return view.__doc__
+ return force_unicode(view.__doc__)
def render(self, data, accepted_media_type=None, renderer_context=None):
"""
diff --git a/rest_framework/views.py b/rest_framework/views.py
index fa742582..a3a3ac25 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -4,6 +4,7 @@ Provides an APIView class that is used as the base of all class-based views.
from __future__ import unicode_literals
from django.core.exceptions import PermissionDenied
from django.http import Http404
+from django.utils.encoding import force_unicode
from django.utils.html import escape
from django.utils.safestring import mark_safe
from django.views.decorators.csrf import csrf_exempt
@@ -96,7 +97,7 @@ class APIView(View):
Override to customize.
"""
# TODO: deprecate?
- name = self.__class__.__name__
+ name = force_unicode(self.__class__.__name__)
name = _remove_trailing_string(name, 'View')
return _camelcase_to_spaces(name)
@@ -106,7 +107,7 @@ class APIView(View):
Override to customize.
"""
# TODO: deprecate?
- description = self.__doc__ or ''
+ description = force_unicode(self.__doc__) or u''
description = _remove_leading_indent(description)
if html:
return self.markup_description(description)