升级到django 1.4时,我得到';X';与型号';Y';,尚未安装或是抽象的
我正在从django 1.3.1升级到1.4,它没有任何问题 我收到以下错误消息: exome_project.phen_form_choice:'term'与尚未安装或抽象的模型“class'exome_project.models.term'”有关系 奇怪的是,所谓抽象或缺失的术语类是 在同一个python文件的正上方定义:升级到django 1.4时,我得到';X';与型号';Y';,尚未安装或是抽象的,django,django-models,Django,Django Models,我正在从django 1.3.1升级到1.4,它没有任何问题 我收到以下错误消息: exome_project.phen_form_choice:'term'与尚未安装或抽象的模型“class'exome_project.models.term'”有关系 奇怪的是,所谓抽象或缺失的术语类是 在同一个python文件的正上方定义: class Term(models.Model): id = models.IntegerField(primary_key=True) name =
class Term(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=600)
is_obsolete = models.IntegerField()
is_root = models.IntegerField()
subontology = models.CharField(max_length=3)
comment = models.TextField(blank=True)
acc = models.CharField(max_length=30)
def __unicode__(self):
return u'%s, Sub: %s' % (self.name, self.subontology)
class Meta:
db_table = u'v_term'
ordering = ['name','id']
app_label = 'HPO Views'
class phen_form_choice(models.Model):
term = models.OneToOneField(Term, primary_key=True)
phen_form_cat = models.ForeignKey('phen_form_category')
display_order = models.IntegerField()
def __unicode__(self):
#return u'Term Id: %s, Term Name: %s, Display Order: %s' % (self.term.name, self.phen_form_cat, self.display_order)
return self.term.name
class Meta:
ordering = ['phen_form_cat','display_order']
我认为(不确定)这可能是因为Term类中的app\u label
属性。
如果两个类都在同一models.py文件中(看起来是),您可以尝试删除app\u标签='HPO Views'
行。或者,如果两个文件都不在models.py中,则将此行添加到另一个类中
然后使用syncdb命令。如果它仍然不起作用,并且您有一个开发环境,请尝试删除de数据库,然后使用syncdb重建它
关于应用程序标签:只是想了解一些事情:为什么有时候FK是一个类名(例如
Term
),但有时候它是一个字符串(例如'phen\u form\u category'
)?不知道,我还没有写代码。。。