diff -r 740d595d6728 -r c365a6e23a56 src/p4l/mapping/serializers.py --- a/src/p4l/mapping/serializers.py Sat Oct 05 21:00:59 2013 +0200 +++ b/src/p4l/mapping/serializers.py Mon Oct 07 14:28:31 2013 +0200 @@ -31,11 +31,11 @@ # knowledge of the CeCILL-B license and that you accept its terms. # +from collections import OrderedDict import logging from rdflib.namespace import RDF -from rdflib.term import URIRef, Literal, BNode -from collections import OrderedDict +from rdflib.term import URIRef, Literal, BNode, Identifier logger = logging.getLogger(__name__) @@ -80,8 +80,9 @@ res = self.convert(getattr(obj, self.source or fieldname)) if res is None: return - if not isinstance(res, Literal): + if not isinstance(res, Identifier): res = Literal(unicode(res)) + lang = getattr(obj, self.lang_field, None) if self.lang_field else None return Literal(res.value, lang) if lang else res @@ -99,7 +100,7 @@ class RelatedFieldSerializer(SimpleFieldSerializer): def __init__(self, value_field, predicate=None, convert=None, source=None, many=False, lang_field=None): - super(RelatedFieldSerializer, self).__init__(predicate, convert, source, lang_field=lang_field) + super(RelatedFieldSerializer, self).__init__(predicate=predicate, convert=convert, source=source, lang_field=lang_field) self.many = many self.value_field = value_field