2013-08-27 11 views
7

Ich bekomme diesen Fehler beim Versuch, Objekte mit Namen nicht in Englisch in der Django Admin-Konsole anzuzeigen.Unicode-Fehler in Django-Admin

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

Meine .py Datei-Header ist

-*- coding: utf-8 -*- 

dies der Code ist

class Owner(models.Model): 
    id = models.AutoField(primary_key=True) 
    name = models.CharField(max_length=50) 
    def __str__(self): 
     return self.name 

Ich habe für andere Themen rund um das Thema sah sich um und fand die Folowing Lösungen: I habe versucht, die Codierung in der Py-Datei zu Unicode zu ändern, habe ich versucht, __str__ als unicode(self.name) und als u'%s',self.name zu schreiben. Ich habe auch versucht, ein __unicode__ Mitglied mit den gleichen Kombinationen hinzuzufügen. Hat nicht funktioniert. Ich habe auch versucht, die DB wieder zu synchronisieren und den Server zu prellen. Nichts.

Die seltsame Sache ist, dass die Namen in den Menüs angezeigt werden, aber wenn ich versuche, das Objekt zu bearbeiten, erhalte ich den Fehler.

Ich würde jede Hilfe zu schätzen wissen.

Python 2.7, Django 1.5.2, Ubuntu 12, Postgres.

eine Vollrückverfolgung der Ausnahme

Internal Server Error: /admin/calc/owner/3/ 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 140, in get_response 
    response = response.render() 
    File "/usr/local/lib/python2.7/dist-packages/django/template/response.py", line 105, in render 
    self.content = self.rendered_content 
    File "/usr/local/lib/python2.7/dist-packages/django/template/response.py", line 82, in rendered_content 
    content = template.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 140, in render 
    return self._render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render 
    return self.nodelist.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 830, in render 
    bit = self.render_node(node, context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 74, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", line 124, in render 
    return compiled_parent._render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render 
    return self.nodelist.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 830, in render 
    bit = self.render_node(node, context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 74, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", line 124, in render 
    return compiled_parent._render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render 
    return self.nodelist.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 830, in render 
    bit = self.render_node(node, context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 74, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py", line 284, in render 
    return nodelist.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 830, in render 
    bit = self.render_node(node, context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 74, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", line 63, in render 
    result = block.nodelist.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 830, in render 
    bit = self.render_node(node, context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 74, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py", line 284, in render 
    return nodelist.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 830, in render 
    bit = self.render_node(node, context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 74, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py", line 84, in render 
    output = self.filter_expression.resolve(context) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 606, in resolve 
    new_obj = func(obj, *arg_vals) 
    File "/usr/local/lib/python2.7/dist-packages/django/template/defaultfilters.py", line 41, in _dec 
    args[0] = force_text(args[0]) 
    File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py", line 107, in force_text 
    s = six.text_type(bytes(s), encoding, errors) 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 
+2

Haben Sie versucht, '__str__' zu' __unicode__' Umbenennung ? –

+0

hinzugefügt das Python3-Tag, da es höchstwahrscheinlich relevant hier ist – ThiefMaster

+1

@ThiefMaster: überraschend, dass das OP behauptet, dies ist Python 3, der Standard-ASCII-Codec impliziert, dass dies Python 2 ist. –

Antwort

12

Code wie folgt ändern:

class Owner(models.Model): 
    id = models.AutoField(primary_key=True) 
    name = models.CharField(max_length=50) 
    def __unicode__(self): 
     return self.name 

diesen Link ansehen: django unicode error on admin page