django QuerySet对象转换成字典格式
简介 Django ORM用到三个类:Manager、QuerySet、Model。 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?方法和属性:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |