django QuerySet对象转换成字典格式

前端之家收集整理的这篇文章主要介绍了django QuerySet对象转换成字典格式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

简介

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


猜你在找的Django相关文章