Я создаю небольшое приложение ToDo. Я не знаю, как объединить разные контексты в одном контексте.
Ниже Вы можете видеть, что я создал три контекста, которые возвращают разные значения. Первый контекст подсчитывает количество планов по дате модели дня. Второй контекст подсчитывает количество выполненных планов по дням, а третий контекст подсчитывает статус планов = отложено
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 контекста в одном контексте и передаю его в шаблон, чтобы я мог легко перенаправить его на oop.
Мне нужно, чтобы эти запросы были в одном контексте