Django版本:1.9.3 Python版本:3 PostgreSQL版本:9.4.6
摘要
我正在尝试按用户名分组“check_date”的总数。两个查询似乎都很好,但是Django在运行后没有返回任何结果。这与PostgreSQL中的预期相同。
详情
数据库表:
id | username | check_date
----+-------------+------------
1 | john | 2016-03-26
2 | john | 2016-03-26
3 | samantha | 2016-03-26
4 | samantha | 2016-03-26
5 | samantha | 2016-03-26
Django Class:
class UserTable(models.Model):
username = models.CharField(max_length=15)
check_date = models.CharField(max_length=15, blank=True)
Django查询:
date = str(u'\''+date+'\'')
userCount = UserTable.objects.filter(check_date=date)
userCount = userCount.values('username').annotate(total = models.Count('username'))
请注意,由于Django删除了引号并因此影响了查询,因此在将日期变量传递给过滤器之前,我必须“调整”日期变量(即使日期字段现在不是DateField)。
Django查询结果==> print (userCount.query)
SELECT "users_table"."username", COUNT("users_table"."username") AS "total" FROM "users_table" WHERE "users_table"."check_date" = '2016-03-26' GROUP BY "users_table"."username"
在PostgreSQL中运行查询:
username | total
-------------+-------
john | 2
samantha | 3
在Django中运行查询:
[]
感谢任何帮助。