Django的正向查询与反向查询

Django的多表查询

假设有模型

class Category(models.Model):

id = models.CharField(primary_key = True,max_length = 255)

type_name = models.CharField(max_length = 255)

def str(self):

    return self.id+"."+self.type_name

class Meta:

    db_table = "category"

class BookList(models.Model):

name = models.CharField(primary_key = True,max_length = 255) #书名

author = models.CharField(max_length = 255)                 #作者

read_num = models.CharField(max_length = 255)                  #阅读人数

book_type = models.ForeignKey(Category, models.DO_NOTHING)  #外键 ,书的类别



class Meta:
    db_table = "booklist"

正向查询就是查询对象的主体是Category,要查询Category模型对应表里的数据

反向查询就是查询对象的主体是Category,要查询的是BookList里的数据

1正向查找

t = models.Category.objects.filter()

<QuerySet [<Category: 1.玄幻魔法>, <Category: 2.武侠修真>, <Category: 3.都市言情>, <Category: 4.历史穿越>, <Category: 5.恐怖悬疑>, <Category: 6.游戏竞技>,<Category: 7.军事科幻>, <Category: 8.女生频道>]>

2反向查找

t[0].booklist_set.values(“name”)

<QuerySet [{‘name’: ‘七世悟道’}, {‘name’: ‘关于在异界求生这件小事’}, {‘name’: ‘刀镇星河’}, {‘name’:‘变身之女侠时代’}, {‘name’: ‘吾名丹尊万木’}, {‘name’:‘基因贩卖商’}, {‘name’: ‘天地霸体诀’}, {‘name’: ‘天革’}, {‘name’: ‘天骄狂尊’}, {‘name’: ‘太古魂帝’}, {‘name’: ‘守域奇缘’}, {‘name’: ‘悲剧发生前[快穿]’}, {‘name’: ‘我有一张沾沾卡’}, {‘name’: ‘我的绝美御姐老婆’}, {‘name’: ‘我的美女俏老婆’}, {‘name’: ‘我的铆钢蒸汽时代’}, {‘name’: ‘战道天图’}, {‘name’: ‘无敌从满级属性开始’}, {‘name’: ‘极品朋友圈’}, {‘name’: ‘残魄御天’}, ‘…(remaining elements truncated)…’]>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值