django框架学习:⼆⼗九.django外键(ForeignKey)使⽤,查
询
前⾔
前⾯学习了⼀对⼀查询,今天学习⼀下外键(ForeignKey)使⽤查询
models.py
在上篇的基础上,在添加⼀张银⾏信息。
将银⾏卡信息和Card表关联。
之后执⾏ makemigrations 和migrate,同步数据
python manage.py makemigrations
python manage.py migrate
shell模式新增数据
进⼊到manage.py⽂件⽬录,cmd进⼊命令⾏页⾯
输⼊:python manage.py shell
新增数据
先导⼊包
dels import Card,BankInformation
创建数据:
查询数据库:
BankInformation表
正向查询
根据Card的信息取查询BankInformation相关联的银⾏卡信息
cardinfo = (card_id='0002')
反向查询_set
假如想通过“银⾏名称”反向查询银⾏关联的多少银⾏卡,并且能够查询每个银⾏卡的信息,当ForeignKey没设置related_name参数,默认是通过关联表的名称加_set去查询。
查询结果是QuerySet集合对象
count()函数统计查询个数
[0].card_id 下标取值,获取对应属性
related_name
Card的外键只有⼀个时,可以通过_set去查询到,当有多个外键时,就⽆法查询具体哪个外键了,这时候就需要加个related_name参数。related_name参数相当于给这个外键取了个别名,⽅便多个外键时候去识别。以下是新增数据和正向查询
当定义了related_name后”_set”这类查询就被related_name代替了,所以⽤”_set”会报错。
反向查询需要⽤到related_name参数,如下
nn=Card_(nub='黄⾦会员')
nn.cardgrade.all() <QuerySet [<Card: 0005>]>
nn.cardgrade.all()[0].card_id '0005'
# BankInformation表查Card表
bb=(bank_name='上海银⾏')
django怎么学bb.card_bank.all() <QuerySet [<Card: 0005>]>
bb.card_bank.all()[0].card_id '0005'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论