Bil*_*ary 1 python django syncdb manage.py
我是Django的新手.
我希望我的模型名称以中文显示,所以我在我的模型的元类中使用了verbose_name,代码如下:
#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
Run Code Online (Sandbox Code Playgroud)
但是当我运行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
Run Code Online (Sandbox Code Playgroud)
似乎manage.py无法处理我的verbose_name中的非ascii字符.我做错了什么?
谢谢.
您必须指定编码.添加以下行作为models.py文件的第一行.
# encoding: utf-8
Run Code Online (Sandbox Code Playgroud)
更新
OP编辑了他的问题,说" models.py用Unicode编码".然后错误很奇怪.它适用于我在Ubuntu Jaunty上使用Django 1.2.1,Python 2.6.2.
更新2
你可以发布你用过的编码字符串models.py吗?