2016-04-02 22 views
0

uzantısına sahiptir. İki uygulamanız var. Her ikisi de, index.html 'den genişleyen farklı base.html şablonlarına sahiptir. Her uygulamada index.html farklıdır.İki uygulama aynı base.html dosyasından Django

Ancak bazı nedenlerden dolayı sadece base.html ile aynı uygulamadan çıkıyor? Bu nasıl mümkün olabilir?

Bu benim benim index.html şablonları hem de böyle görünecektir:

{% extends 'base.html' %} 

cevap

1

Nasıl template/ dizin yapısı kurulur? Bir index.html şablonu base.html'dan genişlerse, Django, kök şablon dizininizde base.html'un ne olduğunu seçer.

Çözüm: Ya base2.html böyle bir şey için base.html şablonlardan birini yeniden adlandırmak ve base1.html yanında templates/ koymak veya içine base.html dosyaları koymak için templates/ yeni dizinleri oluşturun.

Çözüm A için {% extends base.html %}'u {% extends base2.html %} - index.html şablonunda değiştirdiğinizden emin olun.

Çözüm B için, base.html dosyalarınız aynı adı korur, ancak farklı dizinlerde olabilir. Yani biri templates/base1/base.html ve diğeri templates/base2/base.html. index.html dosyalarınız, {% extends base1/base.html %} ve {% extends base2/base.html %} gibi uzatılabilir. Tüm uzantı yollarının seçtiğiniz şablon dizininin kökü ile ilgili olduğunu unutmayın.

IMO çözümü B, her şablon tabanı için kodu farklı, açıkça adlandırılmış klasörlere ayırdığı için daha iyidir. Gelecekte daha iyi organizasyon/esneklik ve daha az karışıklık.