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

This commit is contained in:
Tom Christie 2011-07-01 12:29:42 +01:00
parent 2ebcc9d3dd
commit 8d51759dd1
3 changed files with 6 additions and 5 deletions

View File

@ -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:

2
README
View File

@ -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

View File

@ -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: