Ошибка SyncDB Manage.py во время модели Django с использованием Non-ASCII VERBOSE_NAME
Вопрос
Я довольно новичок в Джангу.
Я хочу, чтобы имя моих моделей отображаются на китайском языке, поэтому я использовал Verbose_Name в моем Meta Class из моей модели, коды ниже:
#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
Однако, когда я запускаю Manage.py SyncDB, следующие ошибки бросают:
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
Похоже, что Manage.py не может обрабатывать символ без ASCII в моем Velbose_Name. Все, что я сделал не так?
Спасибо.
Решение
Вы должны указать кодировку. Добавьте следующую строку в качестве первой строки вашего models.py
файл.
# encoding: utf-8
Обновлять
ОП отредактировал свой вопрос, чтобы сказать, что «models.py
Кодируется в Unicode ". Тогда ошибка странная. Это работает для меня с использованием Django 1.2.1, Python 2.6.2 на Ubuntu Jaunty.
Обновление 2.
Можете ли вы опубликовать строку кодирования, которую вы использовали для вашего models.py
?