加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

django QuerySet对象转换成字典格式

发布时间:2020-12-15 17:13:23 所属栏目:大数据 来源:网络整理
导读:简介 Django ORM用到三个类: Manager 、 QuerySet 、 Model 。 Manager定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己的manager,增加表级方法;QuerySet:Manager类的一些方法会返回QuerySet实例,Quer

简介

Django ORM用到三个类:ManagerQuerySetModel

Manager定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己的manager,增加表级方法;QuerySet:Manager类的一些方法会返回QuerySet实例,QuerySet是一个可遍历结构,包含一个或多个元素,每个元素都是一个Model 实例,它里面的方法也是表级方法。

前面说了,Django给我们提供了增加表级方法的途径,那就是自定义manager类,而不是自定义QuerySet类,一般的我们没有自定义QuerySet类的必要;django.db.models模块中的Model类,我们定义表的model时,就是继承它,它的功能很强大,通过自定义model的instance可以获取外键实体等,它的方法都是记录级方法(都是实例方法,貌似无类方法),不要在里面定义类方法,比如计算记录的总数,查看所有记录,这些应该放在自定义的manager类中。

1. QuerySet

django QuerySet对象转换成字典对象

>>>?from?django.contrib.auth.models?import?User??
>>>?from?django.forms.models?import?model_to_dict??
>>>?u?=?User.objects.get(id=1)??
>>>?u_dict?=?model_to_dict(u)??
>>>?type(u)??<class?'django.contrib.auth.models.User'>??
>>>?type(u_dict)??<type?'dict'>

通过使用values方法

>>>?from?django.contrib.auth.models?import?User??
>>>?result=User.objects.all().values()
>>>?list_result?=?[entry?for?entry?in?result]
>>>?print(list_result?)
[{'id':1,'username':'陈新明','email':'aaaa@163.com'}]

>>>?result=User.objects.all().values('id','username')
>>>?list_result?=?[entry?for?entry?in?result]
[{'id':1,'username':'陈新明'}]

QuerySet?方法和属性:

  • aggregate

  • all????????????????返回所有的QuerySet

  • annotate

  • as_manager

  • bulk_create

  • bulk_update

  • complex_filter

  • count????????????返回QuerySet的数量????返回整数

  • create

  • dates

  • datetimes

  • db

  • defer,

  • delete

  • difference?????????对QuerySet数据去重

  • distinct

  • earliest

  • exclude

  • exists????????????检查QuerySet是否有数据?返回True/False

  • explain

  • extra

  • filter????????????? 过滤

  • first????????????????返回QuerySet中第一个

  • get

  • get_or_create

  • in_bulk

  • intersection

  • iterator

  • last????????????????返回QuerySet中最后一个

  • latest

  • model????????? ? QuerySet属于哪一个model

  • none

  • only

  • order_by????????QuerySet排序

  • ordered

  • prefetch_related

  • query

  • raw

  • resolve_expression

  • reverse?????????????QuerySet顺序颠倒

  • select_for_update

  • select_related

  • union

  • update,

  • update_or_create

  • using

  • values

  • values_list


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读