django学习笔记004-模型类的关系和关系的查询

一,新建HeroInfo类
在BookInfo类下面继续建立一个类

class HeroInfo(models.Model):
    hname=models.CharField(max_length=20) #英雄名称
    hgender=models.BooleanField(default=True)  #性别 为bool类型,且默认值为true true代表女 false代表男
    hcomment=models.CharField(max_length=128)
    hbook =models.ForeignKey('BookInfo')  #外键,生成一对多的关系

在这里插入图片描述生成迁移文件

python manage.py makemigrations

在这里插入图片描述可以发现migrations文件夹下多了一个文件
在这里插入图片描述
迁移表

python manage.py migrate

在这里插入图片描述打开数据库可以发现生成了对应的字段名
在这里插入图片描述hbook即为外键
二,打开shell

python manage.py shell

在shell中执行下列语句:

 #引入两个模型类
 from booktest.models import BookInfo,HeroInfo
 b=BookInfo()
b.btitle="测试2"
 from datetime import date
b.bpub_date=date(1999,3,1)
 b.save()
h=HeroInfo()
h.hname="英雄1"
 h.hgender=False
h.hcomment="六脉神剑"
#设置hook的外键
h.hbook=b
h.save()

h.hbook=b语句指明hook的外键为b
save()后查看数据库文件:
在这里插入图片描述可以发现生成了对应的关系
由多查一查看关联属性 对象名.字段名

h.hbook

查询一对多的关系 对象名.类名小写_set.all() 返回一个列表的所有对应关系

b.heroinfo_set.all()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值