如何在Django中继承对象?

2024-09-28 20:52:59 发布

您现在位置:Python中文网/ 问答频道 /正文

有关于如何在django中继承对象的链接或教程吗?假设我有一辆车作为父母,一辆车和一辆卡车作为孩子。你知道吗

如果可能的话,是在模特儿。派伊? 它是如何工作的?你知道吗

谢谢。。。你知道吗


Tags: 对象django链接孩子教程父母卡车一辆车
3条回答

与python继承完全相同

class Vehicle(Model):
    name = models.TextField()

class Car(Vehicle):
    passengers = PositiveIntegerField()

class Truck(Vehicle):
    tonnage = FloatField()

>>> Car.objects.create(name='Beetle', passengers = 5)
<Car: name="Beetle",passengers=5>
>>> Truck.objects.create(name='Mack', tonnage=4.5)
<Truck: name="Mack,tonnage=4.5>
>>> Vehicle.objects.all()
[<Vehicle: name="Beetle">,<Vehicle: name="Mack>]
>>> v = Vehicle.objects.get(name='Beetle')
>>> (bool(v.car), bool(v.truck))
(True, False)
>>> v.car
<Car: name="Beetle",passengers=5>
>>> v.truck
None

https://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance

因为Django使用Python,所以正常的Python继承是有效的。有关继承模型的更多信息,请参阅关于模型的Django文档,特别是关于Model inheritance的部分。你知道吗

值得注意的是,虽然Django支持两个继承方法,但没有一个方法的行为是多态的,也就是说,如果使用抽象基类,如果使用多表继承,就不能对车辆模型进行查询并获取汽车实例,不能使用基类模型实例中的子类的行为。你知道吗

someapps和片段试图解决这个问题,但我发现它们的集成不是很友好。你知道吗

相关问题 更多 >