2009-11-12 24 views

cevap

158
{% block javascript %} 
    {{ block.super }} 
    ... more content ... 
{% endblock %} 

Bkz: birini eklerken, hem de bir şablon uzanan ancak zaman ince block.super eser kullanma Django documentation - Template inheritance

+0

Harika çalışıyor, teşekkürler! :) – PKKid

4

yani:

{% extends "base.html" %} vs. {% include "partial.html" %} 

sen ortasında bir şablon eklemek istediğiniz Say Sayfanızda ve sayfanın sonunda bir blokta javascript eklemeyi de sevdiniz: İçerilen şablonda block.super aranması kilitlenecektir.

Cf. Django, #7324, #12008, #13399 ve related update to the documentation numaralarını verir. Krş include tag not:

etiketini dahil “Bu subtemplate işlemek ve HTML dahil” değil olarak “bu subtemplate ayrıştırmak ve ebeveynin parçasıymış gibi içeriğini içerir” bir uygulama olarak düşünülmelidir. Bu, dahil edilen şablonlar arasında paylaşılan bir durumun olmadığı anlamına gelir - her biri tamamen bağımsız bir oluşturma işlemidir.

Bloklar, dahil edilmeden önce değerlendirilir. Başka bir deyişle, blokları içeren bir şablonun, halihazırda değerlendirilmiş ve işlenmiş olan blokları içereceği anlamına gelir - örneğin bir genişletme şablonu tarafından geçersiz kılınabilecek bloklar değil.

{% load sekizai_tags %} 

           ⎧ <p>Some content</p> 
<p>Some content</p>    | {% addtoblock "js" %} 
           | <script type="text/javascript"> 
{% include "partial.html" %} -> ⎨  alert("Hello django-sekizai"); 
           | </script> 
<p>Some more content</p>  ⎩ {% endaddtoblock %} 


{% render_block "js" %} 

django-sekizai README: From: Bu projeyi başlatan temel nedeni eksikliği

oldu ben django-sekizai kullanarak öneriyoruz Bu durumda

, wich gibi şeyler için izin django ve django-cms'de iyi bir medya (css/js) çerçevesi. Evet django'da formlarda kullanılan Media sınıfı var, ama gerçekten bu işe yaramıyor. Genellikle frontend'ler css ve javascript dosyaları üzerinde karar vermek istiyorlar ve Python dosyalarını değiştirmek istemediklerini değiştirmek istemediler ve Python dosyalarınımı değiştirmelerini istemedim. Bunun için, şu anda bulunduğunuz noktadan önceki veya sonraki şablonların içeriğini düzenlemenize izin verilmesi gerekiyordu. Ayrıca kaldırılacak çiftleri de istedim. Sonuç olarak, tam olarak bunu yapan django-versai yazdım. Bloklara benzer, sadece onları devralmak yerine, onları genişletirsin.

İlgili konular