2017-03-26 45 views
0

什麼,我試圖做的是,如何擴展到許多模板以及其視圖功能?

我base.html文件有延伸到它

一個Cart.html而其他子html可以延伸到base.html文件,並有Cart.html可用在base.html文件

像這樣

Catalogue.html ----> base.html文件與Cart.html

Catagories.html ------^

我試圖包括在base.html文件,表格和按鈕沒有出現

,但它不從Cart.html傳遞類和函數

class CartFormView(generic.ListView, ModelFormMixin): 
    template_name = 'Shop/Cart.html' 
    def get(self, request, *args, **kwargs): 
     #bla bla bla 

    def post(self, request, *args, **kwargs): 
     #bla bla bla 

試圖雙延伸,但它是不允許的在Cart.html

{% extends 'Shop/Catalogue.html', 'Shop/Catagories.html' %} 

{% extends 'Shop/Catalogue.html' %} 
{% extends 'Shop/Catagories.html' %} 

感謝

+0

目前尚不清楚你在問什麼。請更明確! –

+0

@nik_m嗯,我想要的Cart.html保存功能在其中每個視圖可用,而不必寫在每個視圖上獲取上下文和保存功能,所以我認爲擴展Cart >>(childHTML)>> base.html可以工作 –

回答

0
  1. 創建一個名爲cart.html
  2. 一個單獨的HTML文件base.html中創建一個{% block cart_page %}和裏面這個輸入:{% include 'path/to/cart.html' %}
  3. 現在,每個頁面將有cart.html片段。

事情是這樣的:

<!-- base.html --> 

<!DOCTYPE html> 
... 

<body> 
    {% block cart_page %} 
     {% include 'templates/cart.html' %} 
    {% endblock %} 
</body> 

現在,如果你希望自己的某些HTML模板中不包括cart.html然後將這些模板裏這樣寫:如果

{% block cart_page %}{% endblock %} 

當然,您希望將cart.html包含到您應該執行的任何(子)模板中:{% extends 'base.html' %}位於每個子模板的頂部。

它爲cart.html更好地包括一個完整的樣板HTML(從<!DOCTYPE html>等),因爲它被認爲是一個片段。唯一將有<!DOCTYPE html>等的文件將是base.html(核心文件)。

+0

好的,我會稍後再嘗試,並讓你知道,但是{%include'templates/cart.html'%}還會帶着Class,def get和def post,我寫在視圖上。 py爲cart.html? –