Ern*_*ieP 5 django django-models django-queryset
我有这样的模型:
class Sales(models.Model):
item = models.CharField(max_length=40)
date_sold = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
我想提供一个特定年份每个月销售总项目的条形图.我的图表软件需要一个如下所示的列表,其中每个数字是特定月份的总销售数量.
sales_by_month = [4, 6, 7, 3, 5. ...]
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我有一种感觉,我应该使用日期aggregate和/或annotate,但不能解决它.
我正在使用SQLite,但计划去PostgreSQL.
我在另一个使用ruby on rails的项目中做到了这一点,据我记忆,它非常简单,所以我希望Django有一个很好的解决方案.
通常对于这样的事情,下面的代码应该有用.
Sales.objects.filter(date_sold__year='2010').values_list('month').annotate(total_item=Count('item'))
Run Code Online (Sandbox Code Playgroud)
但是你有一个dateTime字段,而不仅仅是每个项目的月份.您可以尝试执行以下操作,但我怀疑它是否有效.
values_list('date_sold__month')
Run Code Online (Sandbox Code Playgroud)
另一种选择是尝试使用此线程中所示的extra().因此,如果您使用MySql,可以尝试这样的方法.
Sales.objects.filter(date_sold__year='2010').extra({'month' : "MONTH(date_sold)"}).values_list('month').annotate(total_item=Count('item'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5460 次 |
| 最近记录: |