Django1.10模板在HTML Temp中打印两个相邻的python列表

2024-10-02 12:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我当前正在查询我的测试遗留数据库,查找值为oee_hour且不为空的所有对象,使用:

lines_hourly = Lineoeex.objects.all.values('oee_hour')
hourly_oee_list = list (Lineoeex.objects.all().values_list('oee_hour', flat=True).exclude(oee_hour=None)) #no null entries

在同一行中,我的数据库还包含一个date_hour列,也包含空值。你知道吗

我正在使用以下方法查询值为date_hour的所有对象:

time_hourly = Lineoeex.objects.all.values('date_hour')
time_hourly_list = list (Lineoeex.objects.all().values_list('date_hour', flat=True).exclude(date_hour=None))

两个列表都匹配,1个实值后跟5个空值

然后我将这些变量传递给我的模板。你知道吗

我在HTML代码中迭代hourly_oee_list,并打印每个值。你知道吗

如何打印每小时oee旁边的date_hour值?

每小时打印的代码

<ul class="list-group">
    {% for hourlyoee in hourly_oee_list %}
        <li class="list-group-item> OEE: {{ hourlyoee }} </li>
    {% endfor %}
</ul>

这将打印出hourly_oee_list中的所有oee_hour值。我想用相同的样式打印出date_hour中的time_hourly_list值,就在OEE值旁边。你知道吗

嵌套for循环不会产生所需的效果。你知道吗

关于如何实现这一点有什么建议吗?谢谢


Tags: 对象数据库truedateobjectstimeallexclude
2条回答

如果我理解正确,您可以组合这两个查询,这不仅可以保证两个列表中的数据顺序相同,还可以提高效率:

data = Lineoeex.objects.filter(
    oee_hour__isnull=False,
    date_hour__isnull=False,
).values_list('oee_hour', 'date_hour')

data这里是一个QuerySet包含两个元组,然后我们可以迭代查询集并使用序列解包来访问值:

<ul class="list-group">
    {% for oeee, datehour in data %}
        <li class="list-group-item> OEE: {{ oeee}} - {{ datehour }} </li>
    {% endfor %}
</ul>

但是,如果列的数量是合理的,并且不需要花费太多时间来解析结果,则通常更容易获取Lineoeex对象,并直接访问属性,例如:

data = Lineoeex.objects.filter(
    oee_hour__isnull=False,
    date_hour__isnull=False,
)

在模板中:

<ul class="list-group">
    {% for datum in data %}
        <li class="list-group-item> OEE: {{ datum.oee_hour}} - {{ datum.date_hour }} </li>
    {% endfor %}
</ul>

这使得您从Lineoeex对象中使用的属性更加明确:您不需要检查视图中的QuerySet,就可以了解它如何与模板交互。你知道吗

hourly_oee_list = Lineoeex.objects.values('oee_hour', 'date_hour').exclude(date_hour=None, oee_hour=None)


<ul class="list-group">
    {% for hourlyoee in hourly_oee_list %}
        <li class="list-group-item> OEE: {{ hourlyoee.oee_hour }} </li>
        <li class="list-group-item> OEE: {{ hourlyoee.date_hour }} </li>
    {% endfor %}
</ul>

相关问题 更多 >

    热门问题