django filter查询多选_Django-QuerySet查询集的操作方法

203f2d78913167e29cb417ee13bdc06b.png

1.创建、更新、取出、删除对象

Django自带了一个强大的数据库抽象API可以让你轻松的创建,检索,更新以及删除对象。Django的Object-relational Mapper(ORM)可以兼容MySQL,PostgreSQL,SQLite以及Oracle。请记住你可以在你项目下的setting.py中编辑DATABASES设置来指定数据库。Django可以同时与多个数据库进行工作,这样你可以编写数据库路由通过任何你喜欢的方式来操作数据。

创建对象

431fbb64b3a5d3f51804b4637de4ec53.png

1.引入所需包

04e0c774ec9da5976653fabc4fe5a435.png

2.获取一个用户的对象

get方法允许你从数据库取回一个单独的对象。

af9cef1b6a8d3ada93e0b90d9d2580dc.png

3.设置一个Post实例(博客文档)

05a2dbf670234bd388ee2509208a7d70.png

4.保存到数据库

4f2a9246708f7bfc31dd776bd05d2529.png

5.验证效果:

dc1dafd2b2c3c1f5a76457daa82b9624.png

更新对象

883d0e69f124614894875e472be15094.png

获取对象

bc08d923f3d6f5ef133dfeb5acf4bafb.png
c0a2d3ea533f95bf42b3605ed0a405ec.png

使用filter()方法,过滤查询集(QuerySet)

c976456f58bfc2442c25c8ec69c5a72f.png
329876aaf3c8594f4d8ab08a8f06a4b7.png

使用exclude()方法,排除某些返回结果

1a6e9deb2884cdbda5b593d7e77d2dab.png

使用order_by()方法,对不同的字段进行排序

81948b8763d80c79258fb13b183b7cc1.png

删除对象

17629174e36ecbd192b73d6eea2b16c9.png
b030707fd12a623a8068e33533c0dc36.png

2.创建模型管理器

objects是每一个模型(models)的默认管理器(manager),它会返回数据库中所有的对象。但是我们也可以为我们的模型(models)定义一些定制的管理器(manager)

编辑你的blog应用下的models.py文件添加如下代码来创建一个管理器(manager)

e683140455c448acca805ab2d84efad8.png

get_queryset() 是返回执行过的查询集(QuerySet)的方法。我们通过使用它来包含我们定制的过滤到完整的查询集(QuerySet)中。我们定义我们定制的管理器(manager)然后添加它到Post 模型(model)中。

58b0ff0cadfa23bd482efc435636acdf.png

新建一个状态为published的文章

792642aa044b14fd0556444aa2160f32.png

使用定制管理器

返回所有标题开头为test 的并且是已经发布的帖子

109c45c6263e8a292bc8690323b570c1.png

拓展:

6aa7d2bc21294d7cdfb5e02d6a5bd9a4.png

报错整理:

c9bc2abdf30b35b1bd3c4c9f78f6c268.png

问题原因是没有指定User对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值