首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django ListView如何用另一个上下文压缩上下文数据

Django ListView如何用另一个上下文压缩上下文数据
EN

Stack Overflow用户
提问于 2021-04-09 04:15:01
回答 1查看 32关注 0票数 0

我正在尝试将一些上下文添加到我的ListView上下文中,并在一个for循环中访问它们,如下所示

代码语言:javascript
复制
class WeatherListView(ListView):
        """
        List view of Weather data
        """

template_name = "frontend/weather_list.html"
model = Weather

def get_context_data(self, **kwargs):
    weather_query = Weather.objects.all()
    temp_list = list(weather_query.values_list('temperature', flat=True))
    humidity_list = list(weather_query.values_list('humidity', flat=True))
    
    temp_list_compared = compare_item_to_previous(temp_list)
    humidity_list_compared = compare_item_to_previous(humidity_list)

    data = super().get_context_data(**kwargs)

    context = {
        "object_list": zip(data, temp_list_compared, humidity_list_compared)
    }

    return context

然后我想把我的数据放在for循环模板中

代码语言:javascript
复制
{% for i in object_list %}
{{ i.0.some_field_in_original_context }}
{{ i.1 }}
{{ i.2 }}
{% endfor %}

但我最终得到的原始上下文{{ i.0 }}是这样的

代码语言:javascript
复制
paginator
page_obj
is_paginated

如何在将原始ListView数据压缩后仍能访问它。

__

更新:

明白了,我需要在原始上下文中压缩object_list ListView context如下所示:

代码语言:javascript
复制
 {'paginator': None, 'page_obj': None, 'is_paginated': False,
 'object_list': <QuerySet [<Weather: 2021-04-06 14:34:32.895936+00:00>,
                            <Weather: 2021-04-06 20:40:00.304090+00:00>,
                            <Weather: 2021-04-07 04:24:39.292096+00:00>]>,
'weather_list': <QuerySet [<Weather: 2021-04-06 14:34:32.895936+00:00>,
                            <Weather: 2021-04-06 20:40:00.304090+00:00>,
                            <Weather: 2021-04-07 04:24:39.292096+00:00>]>,
'view': <frontend.views.WeatherListView object at 0x7f4ec824b3d0>}

我的新背景是:

代码语言:javascript
复制
context = {
            "object_list": zip(data["object_list"], temp_list_compared, humidity_list_compared)
        }
EN

回答 1

Stack Overflow用户

发布于 2021-04-09 05:17:00

明白了,我需要在原始上下文中压缩object_list ListView context如下所示:

代码语言:javascript
复制
 {'paginator': None, 'page_obj': None, 'is_paginated': False,
 'object_list': <QuerySet [<Weather: 2021-04-06 14:34:32.895936+00:00>,
                            <Weather: 2021-04-06 20:40:00.304090+00:00>,
                            <Weather: 2021-04-07 04:24:39.292096+00:00>]>,
'weather_list': <QuerySet [<Weather: 2021-04-06 14:34:32.895936+00:00>,
                            <Weather: 2021-04-06 20:40:00.304090+00:00>,
                            <Weather: 2021-04-07 04:24:39.292096+00:00>]>,
'view': <frontend.views.WeatherListView object at 0x7f4ec824b3d0>}

我的新背景是:

代码语言:javascript
复制
context = {
            "object_list": zip(data["object_list"], temp_list_compared, humidity_list_compared)
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67011272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档