jinja2 템플릿의 목록에서 요소 수를 얻으려면 어떻게합니까?
예를 들어, 파이썬에서 :
print(template.render(products=[???]))
그리고 jinja2에서
<span>You have {{what goes here?}} products</span>
답변
<span>You have {{products|length}} products</span>
이 구문을 다음과 같은 표현식에 사용할 수도 있습니다
{% if products|length > 1 %}
jinja2의 내장 필터는 여기 에 문서화되어 있습니다 . 구체적으로, 당신이 이미 발견 length
했듯이 (그리고 그 동의어 count
)는 다음과 같이 문서화되어 있습니다 :
시퀀스 또는 매핑의 항목 수를 반환합니다.
따라서 다시 한 번 템플릿에서 찾은대로 {{products|count}}
(또는 이에 상응하는 {{products|length}}
) ‘제품 수'( ‘길이’)를 제공합니다.
답변
Alex의 의견은 좋아 보이지만 여전히 범위 사용과 혼동되었습니다. 범위 내에서 길이를 사용하는 조건에서 작업하는 동안 다음이 나를 위해 일했습니다.
{% for i in range(0,(nums['list_users_response']['list_users_result']['users'])| length) %}
<li> {{ nums['list_users_response']['list_users_result']['users'][i]['user_name'] }} </li>
{% endfor %}
답변
길이가 None 인 문제가 발생하여 내부 서버 오류가 발생했습니다. TypeError : ‘NoneType’유형의 개체에 len ()이 없습니다.
내 해결 방법은 객체가 없음 인 경우 0을 표시하고 내 경우 목록과 같은 다른 유형의 길이를 계산합니다.
{{'0' if linked_contacts == None else linked_contacts|length}}