为什么我不能在 django 中为子类创建一个外键字段?



>Class 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

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

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

我有项目 (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(空)。

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

最新更新