类文件夹继承自Item类,它具有Folder的外键:
class Item(models.Model):
# some fields
folder = models.ForeignKey('Folder')
class Folder(Item):
# some fields
当我尝试运行时,我收到错误:
app.item: 'folder' has a relation with model Folder, which has either not been installed or is abstract
我认为在这里做的正确的事情是将模型名称放在引号中,我已经完成了,但它似乎没有帮助。我应该怎么做才能使这项工作?
编辑:使用有意义的类名澄清问题
答案 0 :(得分:1)
我有项目(A),其中一些是文件夹(B)。我想要两个班级 引用最多一个文件夹
对你来说,尝试做什么并没有多大意义,但这可以实现 如下:
class Item(models.Model):
# some fields
is_folder = models.BooleanField(default=False)
some_other_folder = models.ForeignKey('self', null=True, blank=True)
然后使用python代码检查is_folder==False
是否为some_other_folder
不是None(null)。
所以实际上你不需要2个模型。