Django管理站点被破坏——在呈现时捕获的unicodedecodededeerror: 'ascii'编解码器不能在0位置解码字节0xd0

时间:2021-05-12 22:42:27

I was developing my own django-app and after testing at domain domain. example .ru moved all to example .ru by editing nginx.conf All worked fine, but now, this error appears:

我开发了自己的django应用程序,并在domain进行了测试。通过编辑nginx, ru移到了。ru。conf一切正常,但是现在,这个错误出现了:

Caught UnicodeDecodeError while rendering: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

And as result - my django adminsite is broken.

结果,我的django管理站点被破坏了。

What could i try to fix this issue?

我该怎么解决这个问题呢?

Django output is here:

Django的输出是:

Environment:


Request Method: GET
Request URL: http://allvbg.ru/admin/

Django Version: 1.3.1
Python Version: 2.5.2
Installed Applications:
['admin_tools',
 'admin_tools.theming',
 'admin_tools.menu',
 'admin_tools.dashboard',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'tinymce',
 'filebrowser',
 'django.contrib.admindocs',
 'easy_thumbnails',
 'mptt',
 'testsite.allvbg',
 'feincms',
 'debug_toolbar',
 'djangoratings',
 'modeltranslation',
 'south']
Installed Middleware:
('django.middleware.cache.CacheMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'debug_toolbar.middleware.DebugToolbarMiddleware',
 'django.middleware.locale.LocaleMiddleware')


Template error:
In template /usr/lib/python2.5/site-packages/admin_tools/theming/templates/admin/base.html, error at line 33
   Caught UnicodeDecodeError while rendering: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
   23 :     <!-- Header -->


   24 :     <div id="header">


   25 :         <div id="branding">


   26 :         {% block branding %}{% endblock %}


   27 :         </div>


   28 :         {% if user.is_active and user.is_staff %}


   29 :         <div id="user-tools">


   30 :             {% trans 'Welcome,' %}


   31 :             <strong>{% filter force_escape %}{% firstof user.first_name user.username %}{% endfilter %}</strong>.


   32 :             {% block userlinks %}


   33 :                  {% url django-admindocs-docroot as docsroot %} 


   34 :                 {% if docsroot %}


   35 :                     <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /


   36 :                 {% endif %}


   37 :                 {% url admin:password_change as password_change_url %}


   38 :                 {% if password_change_url %}


   39 :                     <a href="{{ password_change_url }}">


   40 :                 {% else %}


   41 :                     <a href="{{ root_path }}password_change/">


   42 :                 {% endif %}


   43 :                 {% trans 'Change password' %}</a> /


Traceback:
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/contrib/admin/sites.py" in wrapper
  214.                 return self.admin_view(view, cacheable)(*args, **kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/utils/decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/views/decorators/cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/contrib/admin/sites.py" in inner
  197.             return view(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/views/decorators/cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/contrib/admin/sites.py" in index
  382.             context_instance=context_instance
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/shortcuts/__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/loader.py" in render_to_string
  188.         return t.render(context_instance)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/base.py" in render
  123.             return self._render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/test/utils.py" in instrumented_test_render
  60.     return self.nodelist.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/test/utils.py" in instrumented_test_render
  60.     return self.nodelist.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/test/utils.py" in instrumented_test_render
  60.     return self.nodelist.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/defaulttags.py" in render
  311.             return self.nodelist_true.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/defaulttags.py" in render
  311.             return self.nodelist_true.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/template/defaulttags.py" in render
  437.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py" in reverse
  391.             *args, **kwargs)))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py" in reverse
  312.         possibilities = self.reverse_dict.getlist(lookup_view)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py" in _populate
  208.                     for name in pattern.reverse_dict:
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py" in _populate
  219.                 bits = normalize(p_pattern)
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/utils/regex_helper.py" in normalize
  185.     return zip(*flatten_result(result))
File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/utils/regex_helper.py" in flatten_result
  324.         piece = u''.join(source[last:])

Exception Type: TemplateSyntaxError at /admin/
Exception Value: Caught UnicodeDecodeError while rendering: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

Also whe i try to execute

我也试着去执行。

./manage.py test

The command-line output is

命令行输出

/usr/lib/python2.5/site-packages/djangoratings/fields.py:316: DeprecationWarning: A Field class whose get_db_prep_save method hasn't been updated to take a `connection` argument.
  class RatingField(IntegerField):
/usr/lib/python2.5/site-packages/djangoratings/fields.py:316: DeprecationWarning: A Field class whose get_db_prep_lookup method hasn't been updated to take `connection` and `prepared` arguments.
  class RatingField(IntegerField):
/usr/lib/python2.5/site-packages/mptt/models.py:305: DeprecationWarning: Implicit manager Firm.tree will be removed in django-mptt 0.6.  Explicitly define a TreeManager() on your model to remove this warning.
  DeprecationWarning
/usr/lib/python2.5/site-packages/mptt/admin.py:180: DeprecationWarning: Accessing the item and tree editor through `feincms.admin.editor` has been deprecated. Please use `feincms.admin.item_editor` and `feincms.admin.tree_editor` instead.
  from feincms.admin import editor
Traceback (most recent call last):
  File "./manage.py", line 14, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/management/commands/test.py", line 37, in handle
    failures = test_runner.run_tests(test_labels)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/test/simple.py", line 358, in run_tests
    suite = self.build_suite(test_labels, extra_tests)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/test/simple.py", line 251, in build_suite
    suite.addTest(build_suite(app))
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/test/simple.py", line 77, in build_suite
    test_module = get_tests(app_module)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/test/simple.py", line 35, in get_tests
    test_module = __import__('.'.join(app_path + [TEST_MODULE]), {}, {}, TEST_MODULE)
  File "/usr/lib/python2.5/site-packages/django_filebrowser-3.4.0-py2.5.egg/filebrowser/tests/__init__.py", line 3, in <module>
    from filebrowser.tests.sites import *
  File "/usr/lib/python2.5/site-packages/django_filebrowser-3.4.0-py2.5.egg/filebrowser/tests/sites.py", line 239, in <module>
    all_sites = get_resolver(get_urlconf()).app_dict[APP_NAME]
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py", line 241, in _get_app_dict
    self._populate()
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/core/urlresolvers.py", line 219, in _populate
    bits = normalize(p_pattern)
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/utils/regex_helper.py", line 185, in normalize
    return zip(*flatten_result(result))
  File "/usr/lib/python2.5/site-packages/Django-1.3.1-py2.5.egg/django/utils/regex_helper.py", line 324, in flatten_result
    piece = u''.join(source[last:])
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

2 个解决方案

#1


1  

I had the same error. It was because I had a BOM at the beginning of some files. The problem is that most editors mask these few chars. Try opening with a simple editor and check the firest two chars (I user DOS EDIT)

我犯了同样的错误。因为我在一些文件的开头有一个BOM。问题是,大多数编辑都掩盖了这几个字符。尝试用一个简单的编辑器打开并检查firest两个字符(I user DOS EDIT)

#2


0  

wild guess, but maybe your site now has non-ascii characters in the url (site name or path) (being russian) and you have added these to the url patterns, but the regexps are ascii and not unicode? i say this because url resolvers appear in the trace above. or, perhaps, a similar problem with a reference in the template to a non-ascii url pattern?

也许你的站点现在在url中有非ascii字符(站点名或路径)(为俄文),你已经将它们添加到url模式中,但是regexp是ascii而不是unicode?之所以这么说,是因为url解析器出现在上面的跟踪中。或者,在模板中引用非ascii url模式时,可能会出现类似的问题?

#1


1  

I had the same error. It was because I had a BOM at the beginning of some files. The problem is that most editors mask these few chars. Try opening with a simple editor and check the firest two chars (I user DOS EDIT)

我犯了同样的错误。因为我在一些文件的开头有一个BOM。问题是,大多数编辑都掩盖了这几个字符。尝试用一个简单的编辑器打开并检查firest两个字符(I user DOS EDIT)

#2


0  

wild guess, but maybe your site now has non-ascii characters in the url (site name or path) (being russian) and you have added these to the url patterns, but the regexps are ascii and not unicode? i say this because url resolvers appear in the trace above. or, perhaps, a similar problem with a reference in the template to a non-ascii url pattern?

也许你的站点现在在url中有非ascii字符(站点名或路径)(为俄文),你已经将它们添加到url模式中,但是regexp是ascii而不是unicode?之所以这么说,是因为url解析器出现在上面的跟踪中。或者,在模板中引用非ascii url模式时,可能会出现类似的问题?