سؤال

أريد فقط أن أحلق من خلال قائمة موجودة وإخراج سلسلة محددة منه.
شيء من هذا القبيل: my_string = 'stuff, stuff, stuff, stuff'

أنا أعرف بالفعل loop.last, ، أنا فقط بحاجة إلى معرفة كيفية صنع السطر الثالث في الكود الخاص بي أدناه.

{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff + ', '%}
{% endfor%}
هل كانت مفيدة؟

المحلول

إذا stuffs هي قائمة الأوتار ، فقط هذا سيعمل:

{{ stuffs|join(", ") }}

نهاية لهذه الغاية إلى الوثائق.

نصائح أخرى

يمكنك استخدام + إذا كنت تعرف أن جميع القيم هي خيوط. يوفر Jinja أيضًا ~ المشغل ، والذي سيضمن تحويل جميع القيم إلى سلسلة أولاً.

{% set my_string = my_string ~ stuff ~ ', '%}

سيئتي ، في محاولة تبسيطها ، ذهبت بعيدًا ، في الواقع stuffs هو سجل بجميع أنواع المعلومات ، أريد فقط الهوية فيه.

stuffs = [[123, first, last], [456, first, last]]

أريد my_sting أن تكون

my_sting = '123, 456'

كان يجب أن يكون الرمز الأصلي الخاص بي هكذا:

{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff.id + ', '%}
{% endfor%}

افكر في الأمر، stuffs ربما هو القاموس ، لكنك تحصل على جوهر.

نعم لقد وجدت join تصفية ، وكان سيقترب منه مثل هذا:

 {% set my_string = [] %}
 {% for stuff in stuffs %}
 {% do my_string.append(stuff.id) %}
 {% endfor%}
 {%  my_string|join(', ') %}

لكن الملحق لا يعمل دون استيراد الامتدادات للقيام بذلك ، وقراءة هذه الوثائق أعطتني صداعًا. لا يقول صراحة من أين تستوردها من أو حتى من أين تضع بيان الاستيراد ، لذلك اعتقدت أن إيجاد طريقة للتسلسل سيكون أقل الشرتين.

مجرد اختراق آخر يمكن أن يكون هكذا.

لدي مجموعة من الأوتار التي أحتاجها للتسلسل. لذلك أضفت هذا الصفيف في القاموس ثم استخدمته في الداخل للحلقة التي نجحت.

{% set dict1 = {'e':''} %}
{% for i in list1 %}
{% if dict1.update({'e':dict1.e+":"+i+"/"+i}) %} {% endif %}
{% endfor %}
{% set layer_string = dict1['e'] %}

إذا لم تتمكن من استخدام مرشح الانضمام ولكنك تحتاج إلى إجراء بعض العمليات عند إدخال الصفيف:

{% for entry in array %}
User {{ entry.attribute1 }} has id {{ entry.attribute2 }}
{% if not loop.last %}, {% endif %}
{% endfor %}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top