0

类 Folder 继承自类 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

我认为正确的做法是将模型名称放在引号中,我已经这样做了,但这似乎没有帮助。我应该怎么做才能完成这项工作?

编辑:使用有意义的类名澄清问题

4

1 回答 1

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 代码检查 if is_folder==False,那some_other_folder 不是 None(null)。

所以实际上你不需要2个模型。

于 2012-11-15T18:40:37.723 回答