[python] jinja2 템플릿에서 목록의 길이 가져 오기

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}}


답변