Commit 8d51759d by Tom Christie

Fix bitbucket issue 39. All further issues should be on github

parent 2ebcc9d3
......@@ -9,6 +9,7 @@ Carles Barrobés <txels> - HEAD support.
Michael Fötsch <mfoetsch> - File format support.
David Larlet <david> - OAuth support.
Andrew Straw <astraw> - Bugfixes.
<zeth> - Bugfixes.
THANKS TO:
......
......@@ -6,7 +6,7 @@ To install django-rest-framework in a virtualenv environment
hg clone https://tomchristie@bitbucket.org/tomchristie/django-rest-framework
cd django-rest-framework/
virtualenv --no-site-packages --distribute --python=python2.6 env
source ./env/bin/activate
source env/bin/activate
pip install -r requirements.txt # django, coverage
......
......@@ -4,7 +4,7 @@ Customizable serialization.
from django.db import models
from django.db.models.query import QuerySet
from django.db.models.fields.related import RelatedField
from django.utils.encoding import smart_unicode, is_protected_type
from django.utils.encoding import smart_unicode, is_protected_type, smart_str
import decimal
import inspect
......@@ -177,7 +177,7 @@ class Serializer(object):
Keys serialize to their string value,
unless they exist in the `rename` dict.
"""
return getattr(self.rename, key, key)
return getattr(self.rename, smart_str(key), smart_str(key))
def serialize_val(self, key, obj):
......@@ -228,12 +228,12 @@ class Serializer(object):
# serialize each required field
for fname in fields:
if hasattr(self, fname):
if hasattr(self, smart_str(fname)):
# check for a method 'fname' on self first
meth = getattr(self, fname)
if inspect.ismethod(meth) and len(inspect.getargspec(meth)[0]) == 2:
obj = meth(instance)
elif hasattr(instance, fname):
elif hasattr(instance, smart_str(fname)):
# now check for an attribute 'fname' on the instance
obj = getattr(instance, fname)
elif fname in instance:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment