django2.0ORM实现多表继承及操作

本博文源于django基础操作,多表继承跟抽象基类不同的是,它不会生成数据字段,而是直接可以引用父表的字段。多表继承时,在子类实例中通过小写的父类名称可以引用父类的实例

models.py数据表

from django.db import models

# Create your models here.
class MessageBase(models.Model):
    user_name = models.CharField(max_length=80)

class Moment(MessageBase):
    headline = models.CharField(max_length=50)


数据迁移和记录生成后

python manage.py makemigrations
python manage.py migrate

数据manage.py shell测试


In [1]: from app01 import models

In [2]: m1 = models.Moment.objects.create(user_name='Terry',headline="reference parent field in subclass")

In [3]: m1.save()

In [4]: m1.headline
Out[4]: 'reference parent field in subclass'

In [5]: models.MessageBase.objects.all()
Out[5]: <QuerySet [<MessageBase: MessageBase object (1)>]>

In [6]: models.Moment.objects.all()
Out[6]: <QuerySet [<Moment: Moment object (1)>]>

In [7]: 

在最后两条命令发现,数据库同时创建两条信息,大家可以注意并对自己的情况进行测试!

©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值