Django veya Jinja2'yi kullanırsanız, muhtemelen daha önce bu soruna rastladınız demektir.Django/Jinja2 şablonunda dict nesnesini dizgeye dönüştürme
{
"data":{
"name":"parent",
"children":[
{
"name":"child_a",
"fav_colors":[
"blue",
"red"
]
},
{
"name":"child_b",
"fav_colors":[
"yellow",
"pink"
]
}
]
}
}
Şimdi benim jinja2 şablona bu geçmek istiyorum: Şöyle bir JSON dizesi
j = json.loads('<the above json here>')
self.render_response('my_template.html', j)
... ve şu şekilde yineleme:
<select>
{% for p in data recursive %}
<option disabled>{{ p.name }}</option>
{% for c in p.children %}
<option value="{{ c.fav_colors|safe }}">{{ c.name }}</option>
{% endfor %}
{% endfor %}
</select>
Burada sorun yaşıyorum: her şey, c.fav_colors için Jinja2 çıkışları unicode kodlanmış değerleri dışında çalışır. Javascript'ten erişebilmem için geçerli bir javascript dizisi olarak c.fav_colors'a ihtiyacım var. Jinja'yı şu değerdeki ascii metin olarak yazdırmayı nasıl sağlayabilirim? [u'blue', u'red']
yerine ['blue','red']
?
No kapanış etiketi yapabilirdi? Ayrıca, neden [{% c öğesi için%}} "öğe" {% ifloop.last%} değilse% {% endif%} {% endfor%}] neden olmasın? Bu, şablonların ne için olduğuyla ilgili: python değerlerini, görünümüne ihtiyacı olan her şeye dönüştürmek. – jpic
Bu seçenek etiketini güncelledi. Burada kullanıyorum döngü sözdizimi açıklık içindir. Sadece problemi sergilemeye çalışıyorum: c.fav_colors öğesini javascript ile uyumlu bir dizi olarak nasıl çıkaralım: '['blue', 'red']' – ofko