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.

War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top