একটি jinja2 টেমপ্লেটে একটি তালিকা দৈর্ঘ্য পান


315

আমি জিনজা 2 টেমপ্লেটে কোনও তালিকার উপাদানগুলির সংখ্যা কীভাবে পেতে পারি?

উদাহরণস্বরূপ, পাইথনে:

print(template.render(products=[???]))

এবং jinja2 এ

<span>You have {{what goes here?}} products</span>

উত্তর:


532
<span>You have {{products|length}} products</span>

আপনি এই সিনট্যাক্সটি পছন্দ মত প্রকাশ করতে পারেন

{% if products|length > 1 %}

জিনজা 2 এর বিল্টিন ফিল্টারগুলি এখানে নথিভুক্ত করা হয়েছে ; এবং বিশেষত, যেমন আপনি ইতিমধ্যে খুঁজে পেয়েছেন, length(এবং এর প্রতিশব্দ count) নথিভুক্ত হয়েছে:

সিকোয়েন্স বা ম্যাপিংয়ের আইটেমের সংখ্যাটি ফিরিয়ে দিন।

সুতরাং, যেমনটি আপনি আবার খুঁজে পেয়েছেন, {{products|count}}(বা সমতুল্যভাবে {{products|length}}) আপনার টেমপ্লেটে "পণ্যের সংখ্যা" ("তালিকার দৈর্ঘ্য") দেবে


আমরা কি অপরিশোধিত জন্য পরীক্ষা করতে পারি? পণ্যগুলি যদি না হয় তবে আমাকে {% ব্যবহার করতে হবে ...%} যা বেশ ক্লান্তিকর
নাম জি ভি ইউ

@ ডাব্লুভিএক্সএক্সডব্লিউ এটি কাজ করে: {% set item_count = items | length %}যতক্ষণ পর্যন্ত itemsকোনও তালিকা, ডিক ইত্যাদি হয়
কেবোলিনো

7

অ্যালেক্সের মন্তব্য দেখতে ভাল লাগছে তবে আমি এখনও ব্যাপ্তি ব্যবহার করে বিভ্রান্ত ছিলাম। সীমার মধ্যে দৈর্ঘ্য ব্যবহার করে শর্তে কাজ করার সময় নিম্নলিখিতটি আমার জন্য কাজ করেছিল।

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

2

আমি কোনওটির দৈর্ঘ্য নিয়ে একটি সমস্যা অনুভব করেছি, যা অভ্যন্তরীণ সার্ভার ত্রুটির দিকে পরিচালিত করে: TypeError: 'NoNType' টাইপের অবজেক্টটির কোনও লেন নেই ()

আমার কর্মক্ষেত্রটি কেবল 0টি প্রদর্শন করছে যদি অবজেক্টটি না হয় এবং আমার ক্ষেত্রে তালিকার মতো অন্যান্য ধরণের দৈর্ঘ্য গণনা করে:

{{'0' if linked_contacts == None else linked_contacts|length}}

আপনি ব্যবহার করতে পারে কেউ জন্য পরীক্ষা ফাংশনে বিল্ড- কোনটি । এখানে আরও চেক করুন: https : //jinja.palletspro پروژې . com / en / 2.10.x / templates /# none
উদাহরণটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.