Нахождение 2 значений при наличии в списке в шаблоне Django
У меня есть следующий список под названием `` :[(2, 'Flat Bench'), (1, 'Flat Bench'), (3, 'Flat Bench')]
Я пытаюсь найти, доступны ли b.order
, которое является первым числом, и e.name
, которое является второй строкой, из шаблона django. В своем испытании я убедился, что b.order
равно 2, а e.name
- это 'Flat Bench'.
Вот шаблон django:
{% if b.order and e.name in all_logs %}
available
{% else%}
not available
{% endif %}
В моем случае нет никакой ошибки, просто всегда показывает недоступно, даже если оно доступно.
Я не уверен, какое изменение я должен сделать, чтобы этот код заработал.
Попробуйте следующее:
{% if b.order in all_logs and e.name in all_logs %}
available
{% else%}
not available
{% endif %}
Таким образом, он проверяет, есть ли каждый элемент в списке отдельно. Если они оба есть, (независимо от того, отличается ли индекс), то будет показано available.
Ну, я бы предложил создать пользовательские теги, как описано здесь: https://docs.djangoproject.com/en/4.1/howto/custom-template-tags/
Ваша пользовательская функция должна выглядеть следующим образом:
my_custom_tags.py
from django import template
register = template.Library()
@register.simple_tag
def tuple_check(items, key, value):
return (key, value) in items
Ваш шаблон должен содержать следующее:
{% load my_custom_tags %}
...
some codes here
...
{% tuple_check your_list b.order e.name as item_check_result %}
{% if item_check_result %}
Available
{% else %}
Not Available
{% endif %}