gpt4 book ai didi

python - 抽象类作为外键

转载 作者:太空宇宙 更新时间:2023-11-04 05:31:33 24 4
gpt4 key购买 nike

我试图在类 Locomotion 和 Section 之间创建关系。每个部分都必须选择一个运动之王(类运动由普通/公共(public)汽车/火车等扩展)。我收到关于“字段定义与模型‘运动’的关系,该模型要么未安装,要么是抽象的”的错误。有什么办法吗?从我读到现在,没有好的方法,还是我弄错了?

我的类(class)部分:

class Section(RoadElements):
locomotion = models.ForeignKey(Locomotion, on_delete=models.CASCADE)
def __init__(self, *args, **kwargs):
super(Section, self).__init__(*args, **kwargs)

def __str__(self):
return self.name

它扩展类 RoadElements,也是抽象的。

我对运动的定义:

class Locomotion(models.Model):
transportation_firm_name = models.CharField(max_length=200)
transportation_number = models.CharField(max_length=200)
departure_date_time = models.DateTimeField()
arrival_date_time = models.DateTimeField()
reservation = models.BooleanField(default=False)

class Meta:
abstract = True

类扩展,例如:

class Plain(Locomotion):
seat_number = models.CharField(max_length=200)
class_section = models.CharField(max_length=200)

最佳答案

抽象基类不能有外键,因为该类没有数据库表。在您的示例中:将有一个数据库表,其中包含 Plain 实例的行,但没有 Locomotion 的表。

通常的做法是使用 Generic Foreign Key指向其中一个子类。

关于python - 抽象类作为外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36982836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com