django - 获取一周中每一天的订单计数
问题描述
嗨,我有一个模型:
class Order(models.Model):
user=models.ForeginKey(User)
startDatatime = models.DateTimeField(blank=True, null=True)
我想在每个工作日计算订单。比如在所有星期一的订单计数和所有工作日等
编辑
这是一个好方法吗?
data = []
weekdays = {'Sunday': 1, 'Monday': 2, 'Tuesday': 3, 'Wednesday': 4, ' Thursday': 5,
'Friday': 6, 'Saturday': 7}
for day, value in weekdays.items():
weekly_tasks_count = Task.objects.filter(
todo_list__for_user=request.user,
creation_date_time__week_day=value).count()
data.append({day: weekly_tasks_count})
解决方案
您可以使用列表推导进一步整理您的代码。
WEEKDAYS = {
'Sunday': 1,
'Monday': 2,
'Tuesday': 3,
'Wednesday': 4,
'Thursday': 5,
'Friday': 6,
'Saturday': 7
}
data = [
{
day: Task.objects.filter(
todo_list__for_user=request.user,
creation_date_time__week_day=value).count()
)}
for day, value in WEEKDAYS.items()
]
另一项可能的改进是根据模块中的值构建WEEKDAYS
字典datetime
,但到目前为止,按照您的方式定义它并不会损害可读性。
推荐阅读
- sql - 在 PostgreSQL 的列中连接字符串
- java - 什么是 Scala 类路径?
- amazon-web-services - 通过 CloudFormation 将多个存储桶附加到 CloudFront
- javascript - 将显示更改为显示时单个 Svg 不显示:无显示:块
- html - 将 UX 进度条概念转换为功能性 CSS 和 HTML
- mysql - SQL 在计算相关列时按组分组
- javascript - 将值从 JS 传递到 HTML,然后使用该值传回 JS
- python - 使用 Pandas 查找两个 csv 之间的部分字符串匹配,并使用第一个 csv 的索引输出匹配的结果
- python - 没有使用 postgres 和 sqlalchemy 编码的字符串参数
- r - R传单地图 - 将图层组选择与图例结合起来?