5

これに関連する質問がたくさんありますが、解決策がわかりません。

これは Django 1.4 と Python 2.7 です。

dataUTF8 文字を含む辞書です。次の行を参照してください。

render_to_response('application/app.html', data, context_instance=RequestContext(request))

その から値を出力するテンプレートがレンダリングされますdata

なぜ爆発するのですか?これを修正するにはどうすればよいですか?

編集:掘り下げた後、その一部にdata含まれていますlxml.objectify.ObjectifiedElement。基本的に、通常の辞書のようにクエリできる XML 要素です。それが生成する値は、次のような適切な Unicode 文字列のように見えます。u'\xae\u2020\xa5\xa8\u02c6\xf8'

完全なスタックトレースは次のとおりです。

File "/web/mysite/env/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
  response = callback(request, *callback_args, **callback_kwargs)

File "/web/mysite/current/api/views.py", line 163, in invoice
  return render_to_response('application/app.html', data, context_instance=RequestContext(request))

File "/web/mysite/env/lib/python2.7/site-packages/django/shortcuts/__init__.py", line 20, in render_to_response
  return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/loader.py", line 176, in render_to_string
  return t.render(context_instance)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 140, in render
  return self._render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
  return self.nodelist.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 823, in render
  bit = self.render_node(node, context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 837, in render_node
  return node.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/loader_tags.py", line 123, in render
  return compiled_parent._render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
  return self.nodelist.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 823, in render
  bit = self.render_node(node, context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 837, in render_node
  return node.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/loader_tags.py", line 62, in render
  result = block.nodelist.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 823, in render
  bit = self.render_node(node, context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 837, in render_node
  return node.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/defaulttags.py", line 281, in render
  return nodelist.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 823, in render
  bit = self.render_node(node, context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 837, in render_node
  return node.render(context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 880, in render
  return _render_value_in_context(output, context)

File "/web/mysite/env/lib/python2.7/site-packages/django/template/base.py", line 858, in _render_value_in_context
  value = force_unicode(value)

File "/web/mysite/env/lib/python2.7/site-packages/django/utils/encoding.py", line 74, in force_unicode
  s = unicode(str(s), encoding, errors)

UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-4: ordinal not in range(128)
4

2 に答える 2

4

UTF-8 文字を含めないでください。sが含まれている必要がありますunicode

{'foo': u'bar'}
于 2012-07-18T19:59:54.290 に答える