我有这样一张桌子:
现在我想总结每个日期的饭菜.我写了下面的代码.但它并不像我想的那样有效.
模型:
class Meal(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
date_of_meal = models.DateField()
morning_meal = models.SmallIntegerField(default=0)
mid_day_meal = models.SmallIntegerField(default=0)
night_meal = models.SmallIntegerField(default=0)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
class Meta:
ordering = ['-updated', '-timestamp']
def __str__(self):
return str(self.date_of_meal)
Run Code Online (Sandbox Code Playgroud)
码:
meals_list = Meal.objects.values('date_of_meal').annotate(mm=Sum('morning_meal'), mdm=Sum('mid_day_meal'), nm=Sum('night_meal'))
Run Code Online (Sandbox Code Playgroud)
输出:
<QuerySet [{'mdm': 0, 'mm': 1, 'date_of_meal': datetime.date(2017, 3,
23), 'nm':
1}, {'mdm': 1, 'mm': 1, 'date_of_meal': datetime.date(2017, 3, 23), 'nm': 0}, {
'mdm': 1, 'mm': 0, 'date_of_meal': datetime.date(2017, 3, 22), 'nm': 1}, {'mdm':
0, …Run Code Online (Sandbox Code Playgroud)