django moddle 关联查询
https://blog.csdn.net/qq_41470573/article/details/120505432
https://www.runoob.com/django/django-orm-2.html (看这个)
多对多 会生成多一张关系表
一对多就不会生成一张关系表 (外键写到多的那张表)
authors会在数据库变成authors_id 字段
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=32)
price = models.DecimalField(max_digits=5, decimal_places=2)
authors = models.ForeignKey("Author",on_delete=models.CASCADE) #多对多
class Meta:
db_table = 'dog_book' # 通过db_table自定义数据表名
class Author(models.Model):
name = models.CharField(max_length=32)
age = models.SmallIntegerField()
class Meta:
db_table = 'dog_author' # 通过db_table自定义数据表名
数据插入
1、先查出来再往里面插入
pub_obj1 = models.Author.objects.filter(pk=1).first()
models.Book.objects.create(title="66",price="66",authors=pub_obj1)
2、先查出来得到具体数字 或者直接插入数字
pub_obj1 = models.Author.objects.filter(pk=1).first()
pk=pub_obj1.pk
print(pk)
models.Book.objects.create(title="66",price="66",authors_id=pk)
可以直接插入数字
models.Book.objects.create(title="66",price="66",authors_id=4)
数据查询
##正向查询
获取另外一张表的字段 字段名__关联另外一张表的字段名
book = models.Book.objects.filter(pk=1).all().values_list("authors__name")
# # 正向查询 正向:属性名称__跨表的属性名称
aa=models.Book.objects.filter(authors__name="lucax").values_list("title","price")
print(aa)
##反向:小写类名__跨表的属性名称
aa = models.Author.objects.filter(book__title="1").values_list("name", "book__price")
print(aa)
# # 正向查询
book = models.Book.objects.filter(pk=1).first()
res = book.authors.name
print(res)
# #反向查询 对象.小写类名_set(pub.book_set)
Author = models.Author.objects.filter(pk=1).first()
res = Author.book_set.all()
print(book)
另外一种更方便的写法
https://www.cnblogs.com/kaibindirver/p/17147733.html
添加外键查询外键子段的方法
https://www.cnblogs.com/kaibindirver/p/17227809.html
分类:
Django
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-11-24 maven学习
2019-11-24 Hashmap(类似字典的东西)
2019-11-24 Hashset(不能添加相同的字符进入数组)
2018-11-24 html css样式
2018-11-24 HTML笔记