Skip to main content
 首页 » 编程设计

python之Django之如何创建包含其自身类型集合的模型

2024年08月15日43freeliver54

我正在创建的模型中的一个字段用于其自身类型的实例列表。我如何在 Django 中执行此操作?我找不到任何关于如何执行此操作的文档。

这与我所说的类似,但不起作用,因为尚未定义 Component 类(也可能出于其他原因)。

class Component(models.Model): 
    name = models.CharField() 
    description = models.CharField() 
    status_ok = models.BooleanField() 
    subcomponents = models.ForeignKey(Component) 

简要演示概念的常规类:

class Component: 
    def __init__(self, name, description, status_ok, *subcomponents): 
        self.name = name 
        self.description = description 
        self.status_ok = status_ok 
        self.subcomponents = [] 
        for subcomponent in subcomponents: 
            if isinstance(subcomponent, Component): 
                self.subcomponents.append(subcomponent) 
            else: 
                raise TypeError(subcomponent) 

请您参考如下方法:

要引用相同的模型,请使用普通的 Python 语法 self 但作为字符串,

Class Component(models.Model): 
    name = models.CharField() 
    description = models.CharField() 
    status_ok = models.BooleanField() 
    subcomponents = models.ForeignKey('self')