manage.py syncdbエラーは、非ascii verbose_nameを使用してdjangoモデルを使用します

StackOverflow https://stackoverflow.com/questions/3656119

質問

私は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

ただし、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は、verbose_nameで非ASSASCII文字を処理できないようです。私が間違ったことをしたことはありますか?

ありがとうございました。

役に立ちましたか?

解決

エンコードを指定する必要があります。次の行をあなたの最初の行として追加します models.py ファイル。

# encoding: utf-8

アップデート

OPは彼の質問を編集して、models.py Unicodeでエンコードされています。次に、エラーは奇妙です。UbuntuJauntyでDjango 1.2.1、Python 2.6.2を使用して機能します。

更新2

使用したエンコード文字列を投稿できますか models.py?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top