Django easymode i18n突然失败了吗?

时间:2011-06-21 14:23:58

标签: django django-admin django-templates django-database

我开始得到:

OperationalError at /admin/contact_us/contact_details/
(1054, "Unknown column 'contact_us_contact_details.address_title' in 'field list'")
Request Method: GET
Request URL:    http://216.119.153.206/admin/contact_us/contact_details/
Django Version: 1.4 pre-alpha SVN-16280
Exception Type: OperationalError
Exception Value:    
(1054, "Unknown column 'contact_us_contact_details.address_title' in 'field list'")
Exception Location: /opt/python2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg/MySQLdb/connections.py in defaulterrorhandler, line 36

我的模型看起来像(Singleton):

@I18n('address_title','contact_info','contact_form_header','accepted_message','error_message')
class Contact_details(models.Model):
    class Meta:
        verbose_name = 'Contact Details'
        verbose_name_plural = 'Contact Details'
    address_title = models.CharField(max_length=255,blank=True,null=True)
    title_font = models.ForeignKey(Font,blank=True,null=True)
    contact_form_header = models.CharField(max_length=255,blank=True,null=True)
    contact_form_header_use_title_font = models.NullBooleanField(default=True,blank=True,null=True)
    google_map_link = models.TextField(blank=True,null=True)
    contact_info = models.TextField(blank=True,null=True)
    accepted_message = models.TextField(blank=True)
    error_message = models.TextField(blank=True)


    def save(self):
        self.id = 1
        super(Contact_details,self).save()

    def delete(self):
        pass

    def __unicode__(self):
        return 'Contact Us Details'

我正在使用South进行数据库迁移到生产。当我使用MySQL Workbench检查contact_us_contact_details表时,我发现 address_title_en和address_title_fr 都存在(仅支持的语言)

任何人都有这个错误来自何方的想法?当我开始遇到这个问题时,我正在安装Haystack和Whoosh。

修改: 出于测试目的,我将address_title列添加到MySQL数据库并且它工作正常(它已停止在该列上失败并在下一列开始失败)

1 个答案:

答案 0 :(得分:0)

您好,您可能需要查看http://packages.python.org/django-easymode/i18n/index.html#use-lazy-foreign-keyshttp://packages.python.org/django-easymode/i18n/index.html#haystack如果您按照这些说明操作,一切都应该可以正常工作。

底线是:

在models.py模块中注册模型以用于haystack,而不是在search_indexes模块中注册。