UnicodeEncodeError与django升级到1.8

时间:2015-06-08 16:36:59

标签: python django

我将django从1.7.8升级到1.8.2并测试每一页。当我尝试url" / admin / currency / currency"时,currencies是第三个包,引发了UnicodeEncodeError。但是,管理员中的其他模型不会抛出UnicodeEncodeError,例如" / admin / account / user"

错误消息

Internal Server Error: /admin/currencies/currency/
Traceback (most recent call last):
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/core/handlers/base.py", line 164, in get_response
    response = response.render()
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/response.py", line 158, in render
    self.content = self.rendered_content
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/response.py", line 135, in rendered_content
    content = template.render(context, self._request)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/backends/django.py", line 74, in render
    return self.template.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/template_timings_panel/panels/TemplateTimings.py", line 137, in timing_hook
    result = func(self, *args, **kwargs)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 209, in render
    return self._render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render
    return self.nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/loader_tags.py", line 135, in render
    return compiled_parent._render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render
    return self.nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/loader_tags.py", line 135, in render
    return compiled_parent._render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render
    return self.nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/template_timings_panel/panels/TemplateTimings.py", line 137, in timing_hook
    result = func(self, *args, **kwargs)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/loader_tags.py", line 65, in render
    result = block.nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/defaulttags.py", line 329, in render
    return nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/template_timings_panel/panels/TemplateTimings.py", line 137, in timing_hook
    result = func(self, *args, **kwargs)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/loader_tags.py", line 65, in render
    result = block.nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/defaulttags.py", line 329, in render
    return nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/template_timings_panel/panels/TemplateTimings.py", line 137, in timing_hook
    result = func(self, *args, **kwargs)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/loader_tags.py", line 65, in render
    result = block.nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/defaulttags.py", line 217, in render
    nodelist.append(node.render(context))
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/template_timings_panel/panels/TemplateTimings.py", line 137, in timing_hook
    result = func(self, *args, **kwargs)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 1195, in render
    return func(*resolved_args, **resolved_kwargs)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/contrib/admin/templatetags/admin_list.py", line 419, in admin_list_filter
    'spec': spec,
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/backends/django.py", line 74, in render
    return self.template.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/template_timings_panel/panels/TemplateTimings.py", line 137, in timing_hook
    result = func(self, *args, **kwargs)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 209, in render
    return self._render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/test/utils.py", line 96, in instrumented_test_render
    return self.nodelist.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 903, in render
    bit = self.render_node(node, context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
    return node.render(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/templatetags/i18n.py", line 132, in render
    tmp_context[var] = val.resolve(context)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/base.py", line 674, in resolve
    new_obj = func(obj, *arg_vals)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/template/defaultfilters.py", line 45, in _dec
    args[0] = force_text(args[0])
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/utils/encoding.py", line 94, in force_text
    s = six.text_type(bytes(s), encoding, errors)
  File "/Users/letsoon/Desktop/django1.8_test/lib/python2.7/site-packages/django/utils/functional.py", line 144, in __bytes_cast
    return bytes(func(*self.__args, **self.__kw))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

2 个答案:

答案 0 :(得分:0)

根据您的链接:

  

updatecurrencysymbols命令会将货币符号(如果缺少)添加到每个存在的货币。确保您的符号和名称列设置为UTF-8。

在您的堆栈跟踪中,它尝试使用' ascii'。查看代码中是否有可以指定编码的位置。

答案 1 :(得分:0)

您可以通过将UTF-8放在脚本文件的顶部来定义# -*- coding: utf-8 -*-编码,例如,在您的情况下,您可以使用admin.py的第一行或第二行。