manage.py syncdb Fehler beim Django Modell unter Verwendung von nicht-ASCII- verbose_name
Frage
Ich bin ziemlich neu in Django.
Ich möchte den Namen meiner Modelle in Chinesisch angezeigt werden, so dass ich verbose_name in meinem Meta-Klasse meines Modells verwendet, Codes unter:
#this models.py file is encoded in unicode
class TS_zone(models.Model):
index = models.IntegerField()
zone_name = models.CharField(max_length=50);
zone_icon = models.ImageField(upload_to='zone_icon', null=True)
is_active = models.NullBooleanField(blank=True, null=True)
status = models.CharField(max_length=7,choices=SETTING_STATUS_CHOICES)
class Meta:
ordering = ('index',)
verbose_name = u'你好嗎?'
verbose_name_plural = u'你們都好嗎?'
def __unicode__(self):
return self.zone_name
Allerdings, wenn ich manage.py syncdb ausführen, können die folgenden Fehler führt:
File "E:\pythonroot\myproject\..\myproject\myapp\models.py", line 19
SyntaxError: Non-ASCII character '\xe4' in file
E:\pythonroot\myproject\..\myproject\myapp\models.py on line 19, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Es scheint, dass manage.py nicht Nicht-ASCII-Zeichen in meinem verbose_name verarbeiten. Alles, was ich getan habe, falsch?
Danke.
Lösung
Sie haben eine Codierung angeben. Fügen Sie die folgende Zeile als die erste Zeile Ihrer models.py
Datei.
# encoding: utf-8
Aktualisieren
Die OP hat seine Frage bearbeitet zu sagen, dass die „models.py
in Unicode codiert ist“. Dann ist der Fehler seltsam. Es funktioniert für mich mit Django 1.2.1, Python 2.6.2 auf Ubuntu Jaunty.
Update 2
Können Sie die Codierung String schreiben Sie für Ihre models.py
verwendet haben?