我正在创建一个小的待办事项应用程序。我不知道如何在一个上下文中组合不同的上下文
下面您可以看到,我创建了三个返回不同值的上下文。第一个上下文按日期计算模型中的计划数。第二个上下文按天统计已完成计划的数量,第三个上下文统计计划状态=延迟
class DayStatsListView(ListView):
model = Day
queryset = Day.objects.all()
context_object_name = 'all_plan_stats'
template_name = 'project/stats.html'
def get_context_data(self, **kwargs):
context = super(DayStatsListView, self).get_context_data(**kwargs)
# Counting Total Number of Plans by Day
context['total_plans_count'] = Day.objects.annotate(num_of_plans=Count('plan')) \
.values('num_of_plans', 'date', 'id')
# Counting is_completed=True Plans by Day
context['num_of_completed_plans'] = Day.objects \
.filter(plan__is_completed=True) \
.annotate(num_of_completed_plans=Count('plan__is_completed')) \
.values('num_of_completed_plans', 'id', 'date')
# Counting status=deferred Plans by Day
context['num_of_deferred_plans'] = Day.objects \
.filter(plan__status='deferred') \
.annotate(num_of_deferred_plans=Count('plan__is_completed')) \
.values('num_of_deferred_plans', 'id', 'date')
return context
型号
class Day(models.Model):
date = models.DateField(default=datetime.date.today, unique=True)
class Plan(models.Model):
title = models.CharField(max_length=255)
status = models.CharField(max_length=255, choices=PLAN_STATUSES, null=True, default='upcoming')
is_completed = models.BooleanField(default=False, null=True)
day = models.ForeignKey(Day, CASCADE, null=True)
问题是如何将这3个上下文组合在一个上下文中,并将其传递给模板,以便轻松地对其进行forloop
我需要我的答案,这些查询应该在一个上下文中
如果您只想在模板中遍历它们,那么只需创建一个键和所需值的字典,并将其作为上下文传递 例如
一旦你构建了这个,你现在有了一个dict,它在模板中是可编辑的。 您可以按如下方式执行此操作:
相关问题 更多 >
编程相关推荐