[英]Why can't I create a ForeignKey field to a child class in django?
类文件夹继承自类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(null)。
所以实际上您不需要2个模型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.