manage.py syncdb خطأ أثناء نموذج django باستخدام غير ASCII Verbose_Name

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

سؤال

أنا جديد جدا على Django.

أريد أن يتم عرض اسم النماذج الخاصة بي باللغة الصينية ، لذلك استخدمت ferbose_name في فئة meta الخاصة بي ، الرموز أدناه:

#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 في ervbose_name. أي شيء فعلت خطأ؟

شكرًا لك.

هل كانت مفيدة؟

المحلول

عليك تحديد تشفير. أضف السطر التالي باعتباره السطر الأول لك models.py ملف.

# encoding: utf-8

تحديث

قام OP بتحرير سؤاله ليقول إن ""models.py يتم ترميزه في Unicode ". ثم يكون الخطأ غريبًا. إنه يعمل بالنسبة لي باستخدام Django 1.2.1 ، Python 2.6.2 على Ubuntu Jaunty.

تحديث 2

هل يمكنك نشر سلسلة الترميز التي استخدمتها لك models.py?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top