我将FlaskApp转换为Django。在我的Flask应用程序中,我使用像MySQLAlchemy这样的ORM进行直接数据库查询。
我无法转换我的计数查询以便在Django中使用。似乎很简单,但我错过了一些东西。
旧功能W / QUERY
def countClients(db, begin, end, type):
c = db.cursor()
query = "SELECT COUNT(*) FROM newclients WHERE method LIKE %s AND (enddate BETWEEN %s AND %s)"
c.execute(query, (type, begin, end))
output = int(c.fetchone()[0])
return output
NEW QUERY
for year in range(2015, today.year):
for month in range(1, 13):
startdate = datetime.date(year, month, 1)
enddate = last_day_of_month(startdate)
try:
Count14.append(
newclients.objects.filter(method = 'Test Drive',
enddate__range=(startdate, enddate)
)
).count()
我做了什么
没有尝试,除了我得到追溯
'NoneType' object has no attribute 'count'
但是int函数不能接受查询集。
注意 我已成功使用了部分查询,但我在这里尝试的内容比其他查询更复杂。
即。这个有效,但更简单。
clients = newclients.objects.filter(method=method_query).filter(enddate__range=(begindate, enddate))
答案 0 :(得分:1)
您的.count()
位置错误。它需要在第二个括号之后,而不是第三个。
实际上,你是在append
的结果上调用它,它始终为无。