首页 > 试题

张三李四王五赵六

更新时间:2022-12-03 20:41:15 阅读: 评论:0

高三全托班费用大概-当春乃发生的上一句


2022年12月3日发(作者:web服务器的配置)

数据库表关联关系映射

⽂章⽬录

数据库表关联关系映射

⼀对⼀映射

定义model:⼀个⼈对应⼀个⾝份证

classUrProfile():

name=eld(max_length=16,verbo_name='⽤户名')

classMeta:

db_table='UrProfile'

verbo_name='⽤户'

verbo_name_plural=verbo_name

def__str__(lf):

return'%s'%()

classIDCard():

id_card=eld(max_length=18,verbo_name='⾝份证号')

ur=neField(UrProfile,unique=True,on_delete=E)

classMeta:

db_table='IDCard'

verbo_name='⾝份证号'

verbo_name_plural=verbo_name

def__str__(lf):

return'%s'%(_card)

新增数据

⽤户⾝份证号

张三

李四2222222222

王五33333333

赵六

names=['张三','李四','王五']

fornameinnames:

ur=UrProfile(name=name)

()

id_cards=['1111','222222222222222','333333333333333']

foriinrange(0,3):

#新增数据有两种⽅式

#⽅式⼀:字段名=对象

#⽅式⼆:字段名_id=对象id

idcard=IDCard(id_card=id_cards[i],ur_id=i+1)#⽅式⼆

()

查询数据

正向查询:直接通过关联属性查出(通过外键的查询⽆外键的)----通过⾃⾝对应的对象查

id1='1111'

ur=(id_card=id1).ur

print(ur)

反向查询:通过反向关联属性查询(⽆外键的查询有外键的)----通过关联的外键对象查⾃⾝

name='张三'

idcard=(name=name).idcard

print(idcard)

⼀对多映射

如⼀个书有⼀个作者,⼀个作者有多本书…

classAuthor():

name=eld(max_length=16,verbo_name='作者名')

classMeta:

db_table='Author'

verbo_name='作者'

verbo_name_plural=verbo_name

def__str__(lf):

return'%s'%()

classBook():

name=eld(max_length=16,verbo_name='书名')

author=nKey(Author,on_delete=E)

classMeta:

db_table='Book'

verbo_name='书名'

verbo_name_plural=verbo_name

def__str__(lf):

return'%s'%()

1.外键在⼀对多的多中设置

_delete=E表⽰级联删除

新增数据

作者书

鲁迅孔⼄⼰

闰⼟

李⽩将进酒

早发⽩帝城

蜀道难

author1=(name='鲁迅')

author2=(name='李⽩')

book1=(name='孔⼄⼰',author=author1)

book2=(name='闰⼟',author=author1)

book3=(name='将进酒',author=author2)

book4=(name='早发⽩帝城',author=author2)

book5=(name='蜀道难',author=author2)

正向查询:通过⾃⾝对应的对象查

通过⼀查多

author_name='鲁迅'

author=(name=author_name)

books=(author=author)

print(books)

通过多查⼀

name='蜀道难'

book=(name=name)

author=(book=book)

print(author)

反向查询:通过关联的外键对象查⾃⾝

通过⼀查多

name='李⽩'

author=(name=name)

books=_()

print(books)

在⼀对多情况下:反向查询通过⼀查多时,才有_t

通过多查⼀

name='将进酒'

book=(name=name)

author=

print(author)

多对多

⼀篇⽂章有多个出版社,⼀个出版社有多篇⽂章

classArticle():

name=eld(max_length=16,verbo_name='⽂章')

classMeta:

db_table='Article'

verbo_name='⽂章'

verbo_name_plural=verbo_name

def__str__(lf):

return'%s'%()

classPublication():

name=eld(max_length=16,verbo_name='出版社')

book=ManyField(Article)

classMeta:

db_table='Publication'

verbo_name='出版社'

verbo_name_plural=verbo_name

def__str__(lf):

return'%s'%()

新增数据

出版社⽂章

北京⼤学出版社语⽂⽂章

数学⽂章

英语⽂章

物理⽂章

化学⽂章

⽣物⽂章

清华⼤学出版社英语⽂章

物理⽂章

化学⽂章

#新增⽅式⼀:

#先创建两种对象

#再添加它们之间的关系

pub1=(name='北京⼤学出版社')

pub2=(name='清华⼤学出版社')

article1=(name='语⽂⽂章')

article2=(name='数学⽂章')

article3=(name='英语⽂章')

article4=(name='物理⽂章')

article5=(name='化学⽂章')

article6=(name='⽣物⽂章')

#正向添加

(article1)

(article2)

(article3)

(article4)

(article5)

(article6)

#反向添加

ation_(pub2)

ation_(pub2)

ation_(pub2)

#新增⽅式⼆:

#先创建⼀种对象

#再创建第⼆种对象的同时添加关系

pub1=(name='北京⼤学出版社')

pub2=(name='清华⼤学出版社')

article1=(name='语⽂⽂章')

article2=(name='数学⽂章')

article3=(name='英语⽂章')

article4=(name='物理⽂章')

article5=(name='化学⽂章')

article6=(name='⽣物⽂章')

ation_(pub2)

ation_(pub2)

ation_(pub2)

对应模型没有关联属性时,才有_t

查询数据

正向查询:通过⾃⾝对应的对象查

name='北京⼤学出版社'

publication=(name=name)

articles=(publication=publication)

print(articles)

name='英语⽂章'

article=(name=name)

publications=(article=article)

print(publications)

反向查询

name='北京⼤学出版社'

articles=(name=name).()

print(articles)

name='英语⽂章'

publications=(name=name).publication_()

print(publications)

⼀对多或者多对多情况下,要在admin后台显⽰'多'的属性:

classArticleManager(dmin):

def出版社(lf,obj):

return[ation_()]

list_display=['name','出版社']

classPublicationManager(dmin):

def⽂章(lf,obj):

return[()]

list_display=['name','⽂章']

本文发布于:2022-12-03 20:41:15,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/46589.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:恬淡虚无
下一篇:生物有哪些
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图