Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django如何组合不同的上下文并将其传递给模板_Python_Django - Fatal编程技术网

Python Django如何组合不同的上下文并将其传递给模板

Python Django如何组合不同的上下文并将其传递给模板,python,django,Python,Django,我正在创建一个小的待办事项应用程序。我不知道如何在一个上下文中组合不同的上下文 下面您可以看到,我创建了三个返回不同值的上下文。第一个上下文按日期计算模型中的计划数。第二个上下文按天统计已完成计划的数量,第三个上下文统计计划状态=延迟 class DayStatsListView(ListView): model = Day queryset = Day.objects.all() context_object_name = 'all_plan_stats' te

我正在创建一个小的待办事项应用程序。我不知道如何在一个上下文中组合不同的上下文

下面您可以看到,我创建了三个返回不同值的上下文。第一个上下文按日期计算模型中的计划数。第二个上下文按天统计已完成计划的数量,第三个上下文统计计划状态=延迟

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,它在模板中是可编辑的。 您可以按如下方式执行此操作:

{% for key, value in dict1.items %}
    <tr>
        <td>{{key}}</td>
        <td>{{value}}</td>
    </tr>
{% endfor %}
{%用于键,dict1.items%中的值]
{{key}}
{{value}}
{%endfor%}

由于render(context=dict)返回错误,因此无法工作:render()缺少2个必需的位置参数:“请求”和“模板名称”。当我输入template_name:'some.html'和request=None的值时,我遇到了另一个错误:上下文必须是dict而不是HttpResponse。那么你是否尝试
返回render(request,'path/some.html',context=dict1)
?这个问题解决了吗?如果是,请接受答案,以表明问题已经解决。
{% for key, value in dict1.items %}
    <tr>
        <td>{{key}}</td>
        <td>{{value}}</td>
    </tr>
{% endfor %}