Jinja2 şablonundaki bir listedeki elemanların sayısını nasıl alabilirim?
Örneğin, Python'da:
print(template.render(products=[???]))
ve jinja2'de
<span>You have {{what goes here?}} products</span>
Jinja2 şablonundaki bir listedeki elemanların sayısını nasıl alabilirim?
Örneğin, Python'da:
print(template.render(products=[???]))
ve jinja2'de
<span>You have {{what goes here?}} products</span>
Yanıtlar:
<span>You have {{products|length}} products</span>
Bu sözdizimini aşağıdaki gibi ifadelerde de kullanabilirsiniz
{% if products|length > 1 %}
jinja2'nin yerleşik filtreleri burada belgelenmiştir ; ve özellikle, daha önce bulduğunuz gibi length
(ve eşanlamlısı count
) aşağıdakilere belgelenmiştir:
Bir dizinin veya eşlemenin öğe sayısını döndürür.
Dolayısıyla, yine bulduğunuz gibi {{products|count}}
(veya eşdeğer olarak {{products|length}}
) şablonunuzda "ürün sayısı" ("liste uzunluğu")
{% set item_count = items | length %}
olduğu süreceitems
Alex'in yorumu iyi görünüyor, ancak aralığı kullanmakla hala kafam karışmıştı. Aşağıdaki menzil içinde uzunluk kullanarak bir koşul için çalışırken benim için çalıştı.
{% 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 %}
Dahili Sunucu Hatası yol açar Hiçbiri, uzunluğu ile ilgili bir sorun yaşadım: TypeError: 'NoneType' türünde nesne len () yok
Nesne Yok ise geçici çözümüm yalnızca 0 görüntülüyor ve benim durumumdaki liste gibi diğer türlerin uzunluğunu hesaplıyor:
{{'0' if linked_contacts == None else linked_contacts|length}}