当前位置:知识百科 > 正文

Django_ORM查询之extra查询

更新时间:2026-01-01 11:47 阅读量:133
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查询相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!