如何从数据库中获取月份名称而不是月份编号
How to get the name of the month instead of the month number from db
我正在从数据库中选取一些数据以在我的网站上进行一些分析。我在图表 js 的帮助下以图形方式呈现数据。
这就是我在浏览量中的做法,
views.py
monthly_visitor = VisitorCount.objects.all().filter(date_of_record__year = currentYear.year).values(
'date_of_record__month'
).annotate(
total_in_month=Count('ip')
).order_by('date_of_record__month')
在这里,我正在提取当年每个月的所有访客数据。现在,如果我打印 monthly_visitor,我会得到以下结果
<QuerySet [{'date_of_record__month': 9, 'total_in_month': 1}, {'date_of_record__month': 10, 'total_in_month': 2}, {'date_of_record__month': 11, 'total_in_month': 3},
{'date_of_record__month': 12, 'total_in_month': 5}]>
这是正确的,但我想要的是
<QuerySet [{'date_of_record__month': sept, 'total_in_month': 1}, {'date_of_record__month': oct, 'total_in_month': 2}, {'date_of_record__month': nov, 'total_in_month': 3},
{'date_of_record__month': dec, 'total_in_month': 5}]>
这样我就可以在图表中显示月份的名称而不是数字。我在 html 中遇到了一些使用标签的方法。但是我在 ajax.
的帮助下将这些数据导入到另一个 javascript 文件中
请建议我该怎么做。
假设您的代码有效,对于 PostgreSQL,您可以这样做:
from django.db.models import F, Func, Value, CharField
monthly_visitor = VisitorCount.objects.all().filter(
date_of_record__year=currentYear.year
).values(
'date_of_record__month'
).annotate(
total_in_month=Count('ip'),
formatted_date=Func(
F('created_at'),
Value('Month'),
function='to_char',
output_field=CharField()
)
).order_by('date_of_record__month')
我正在使用 formatting functions,因此此代码依赖于 RDBMS。
您还将在 QuerySet
中有一个 date_of_record__month
,您不必将其传递给响应。
我正在从数据库中选取一些数据以在我的网站上进行一些分析。我在图表 js 的帮助下以图形方式呈现数据。
这就是我在浏览量中的做法,
views.py
monthly_visitor = VisitorCount.objects.all().filter(date_of_record__year = currentYear.year).values(
'date_of_record__month'
).annotate(
total_in_month=Count('ip')
).order_by('date_of_record__month')
在这里,我正在提取当年每个月的所有访客数据。现在,如果我打印 monthly_visitor,我会得到以下结果
<QuerySet [{'date_of_record__month': 9, 'total_in_month': 1}, {'date_of_record__month': 10, 'total_in_month': 2}, {'date_of_record__month': 11, 'total_in_month': 3},
{'date_of_record__month': 12, 'total_in_month': 5}]>
这是正确的,但我想要的是
<QuerySet [{'date_of_record__month': sept, 'total_in_month': 1}, {'date_of_record__month': oct, 'total_in_month': 2}, {'date_of_record__month': nov, 'total_in_month': 3},
{'date_of_record__month': dec, 'total_in_month': 5}]>
这样我就可以在图表中显示月份的名称而不是数字。我在 html 中遇到了一些使用标签的方法。但是我在 ajax.
的帮助下将这些数据导入到另一个 javascript 文件中请建议我该怎么做。
假设您的代码有效,对于 PostgreSQL,您可以这样做:
from django.db.models import F, Func, Value, CharField
monthly_visitor = VisitorCount.objects.all().filter(
date_of_record__year=currentYear.year
).values(
'date_of_record__month'
).annotate(
total_in_month=Count('ip'),
formatted_date=Func(
F('created_at'),
Value('Month'),
function='to_char',
output_field=CharField()
)
).order_by('date_of_record__month')
我正在使用 formatting functions,因此此代码依赖于 RDBMS。
您还将在 QuerySet
中有一个 date_of_record__month
,您不必将其传递给响应。