Django检查数组内的数组并更改模板

Posted

技术标签:

【中文标题】Django检查数组内的数组并更改模板【英文标题】:Django check array inside array and change template 【发布时间】:2021-04-25 16:33:34 【问题描述】:

我有这个数组线

setime = ["00:00", "00:30", "01:00", "01:30", "02:00", "02:30", "03:00", "03:30", "04:00", "04:30", "05:00", "05:30", "06:00", "06:30", "07:00", "07:30", "08:00", "08:30", "09:00", "09:30", "10:00", "10:30", "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30", "20:00", "20:30", "21:00", "21:30", "22:00", "22:30", "23:00", "23:30"] 

我想检查一下

可见

 myListTime= checkDateTime.objects.all().filter(Teacher_id = 1)

我在模板中试过

% for i in setime %
                <ul>
                    % for j in myListTime %
                        % if j.cuTime in i %
                            <li class="active"> i </li>
                        % else %
                            <li> i </li>
                        % endif %
                    % endfor %
                </ul>
                % endfor %

如果数据匹配,我需要这样的结果,我有活动类

enter image description here

in db

【问题讨论】:

时间值如何链接到checkDateTime 对象?它有一个字段吗? 对不起,我重新编辑了我的问题。我在我的模板中尝试了 % if j.cuTime in i % 这个。但没有工作。 【参考方案1】:

您最好在数据库查询中使用该列表,而不是遍历时间列表。

如果您有一个列表,您可以使用__in 检查字段值中是否存在值列表​​。

setime = ["00:00", "00:30", ..., "22:30", "23:00", "23:30"] 

myListTime_with_time = checkDateTime.objects.all().filter(Teacher_id=1, cuTime__in=setime)

myListTime_without_time = checkDateTime.objects.all().filter(Teacher_id=1).exclude(cuTime__in=setime)

【讨论】:

以上是关于Django检查数组内的数组并更改模板的主要内容,如果未能解决你的问题,请参考以下文章

迭代 Django 模板中数组内的多个列表

javascript js求和2个数组并返回一个新数组

展平 3D NumPy 数组中的内部元组并作为浮点数保存到 CSV

Django:如何遍历模板内的两个列表[重复]

比较 2 个数组并列出差异 - Swift

比较2个数组并列出差异 - Swift