当前位置:知识百科 > 正文
Django_ORM查询之extra查询
extra(select=None, where=None,params=None,tables=None, order_by=None, select_params=None)
有些情况下,Django的查询语法难以简单的表达复杂的?
子句,QuerySet生成的SQL从句中注入新子句.
The?
从句中添加其他字段信息,它应该是一个字典,存放着属性名到 SQL 从句的映射.
queryResult=models.Article.objects.extra(select={'is_recent': "create_time > '2018-04-18'"})
article_obj=models.Article.objects.filter(nid=1).extra(select={"standard_time":"strftime('%%Y-%%m-%%d',create_time)"}).values("standard_time","nid","title")
print(article_obj)
#
FROM子句.
where参数均为"与"任何其他搜索条件.
queryResult=models.Article.objects.extra(where=['nid in (1,3) OR title like "py%" ','nid>2'])
models.Article.objects.all().filter(user=current_user).extra(select={"filter_create_date":"strftime('%%Y/%%m',create_time)"}).values_list("filter_create_date").annotate(Count("title"))
extra使用来进行过滤的,参数select必须等于一个字典(转成sql的where语句去执行,查出create_time,然后转换成自己格式化的时间)
#按照查询出来的年份和月份进行分组,并且显示文章个数
result = result.extra(
where=[
'uuid in (select DISTINCT equipment_id from bms_system_equipment_module where module_id in %s)'],
params=[get_module_ids(module)]
以上就是旭源小常识小编为大家整理的Django_ORM查询之extra查询相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!
