【发布时间】:2011-11-25 10:08:17
【问题描述】:
是否有关于如何在 django 中继承对象的链接或教程?假设我有一辆汽车作为父母,一辆汽车和一辆卡车作为它的孩子。
如果可能,是否在models.py 中完成? 它是如何工作的?
谢谢...
【问题讨论】:
标签: python django inheritance
是否有关于如何在 django 中继承对象的链接或教程?假设我有一辆汽车作为父母,一辆汽车和一辆卡车作为它的孩子。
如果可能,是否在models.py 中完成? 它是如何工作的?
谢谢...
【问题讨论】:
标签: python django inheritance
和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 的部分。
【讨论】: