FreezeJ' Blog

Django小知识

2019-04-28

查看model列名

Billing_Cost.objects.get(id=1)._meta.fields

1548238762146

忽略模版渲染语法

使用标签verbatim endverbatim

Model只查询特定列的结果

Billing_Cost.objects.values(‘resource_type’,’change_time’).get(id=1)

1548238973794

Model查询排除特定列的结果

Billing_Cost.objects.defer(‘resource_type’,’change_time’).values().get(id=1)

1548239087634

分组统计查询

统计某个状态的个数,这个order_by()很关键。

TaskModel.objects.all().values('task_status').order_by('task_status').annotate(status_count=Count('task_status'))

查询语句:

SELECT `task`.`task_status`, COUNT(`task`.`task_status`) AS `status_count` FROM `task` GROUP BY `task`.`task_status` ORDER BY `task`.`task_status` ASC

执行结果:

<QuerySet [{'task_status': 0, 'status_count': 11}, {'task_status': 1, 'status_count': 169}, {'task_status': 2, 'status_count': 19}, {'task_status': 3, 'status_count': 11}]>
Tags: Django