2010-08-10 18 views
7

Şuna benzeyen bir etiketim var:Şablon etiketi nasıl filtrelenir?

{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form %} 

Sadece boş bir form oluşturuyor. Ama şimdi bunun çıktısını escapejs filtresine aktarmak istiyorum, böylece onu bir JavaScript değişkeninde kullanabilirim. Bunu nasıl yapabilirim?

cevap

14

Etiketlerin birçoğu, as variablename desteğini destekler - yani, etiketin sonuna as variablename kodunu koyun ve daha sonra bu etiketin çıkışı, görüntülenmek yerine değişkene yerleştirilir.

Bu {% partial %} etiketi bunu destekleyebilir. eğer olursa Burada bir örnek:

{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form as myvar %}{{ myvar|escapejs }} 

söz konusu etiketin "Partial tag" snippet o zaman bu desteklemediği anlaşılıyor ise. Ancak muhtemelen bunu desteklemek için yeniden yazılabilir.

Sen "Capture template output as a variable" pasajını kullanmak ve sonra şöyle, yakalanan içeriğe filtre uygulamak olabilir:

{% captureas myvar %}{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form %}{% endcaptureas %}{{ myvar|escapejs }} 
+0

Bu, değişken adlandırma özelliğini destekleyen kısmi etiket snippet'inin değiştirilmiş bir sürümüdür. http://djangosnippets.org/snippets/2104/ Bence 'captureas' sol'n çalışmalı. Özel etiket captureas için – mpen

+0

+1 –

1

Başka bir çözüm, bir JS değişkene veri almak için:

<div class="display:none" id="empty-vehicle-form">{% partial "partials/vehicleform.html" vehicle=vehicles.empty_form %}</div> 

Sonra yakalamak ve bu çözeltideki aynı zamanda

var empty_form = $('#empty-vehicle-form').remove().html(); 

avantajını çıkarın n, diğer JS betikleriniz DOM'den çıkarmadan önce ön işleme koymanızdır. escapejs ayrıca tüm bu kaçış chars ile büyük dosyalar oluşturur.

İlgili konular