#arrays #django #django-templates #django-template-filters
#массивы #django #django-шаблоны #django-template-filters
Вопрос:
у меня есть строка массива
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 %}
мне нужен такой результат, если данные совпадают, у li есть активный класс
Комментарии:
1. Как значение времени связано с
checkDateTime
объектами? Есть ли для этого поле?2. из-за недостатка информации я повторно отредактировал свой вопрос. Я попробовал {% 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)