2010-08-25 122 views
2

我是新的Django和Python,我卡住了!這是複雜的解釋,但我會試試看...我有我的index.html模板與包括標籤:如何在另一個模板內渲染模板?

{% include 'menu.inc.html' %} 

菜單是一個動態(http://code.google.com/p/django-treemenus/)。菜單 - 應用程序認爲呈現menu.inc.html一個觀點:

from django.http import HttpResponse 
from django.template import Context, loader 
from treemenus.models import Menu 

def mymenu(request): 
    mainmenu = Menu.objects.get(id = 1) 
    template = loader.get_template('menu.inc.html') 
    context = Context({ 
     'mainmenu':mainmenu, 
    }) 

    return HttpResponse(template.render(context)) 

所以,當我訪問index.html服務器將它有助於我和Django會加載和服務menu.inc.html!但不是內容!我的問題是:

  1. 如何反向鏈接menu.inc.html到視圖?!或
  2. 如何通過特定視圖告訴django模板需要渲染模板?

我不想把mainmenu = Menu.objects.get(id = 1)在我的索引的觀點,因爲菜單將在其他頁面太...我想I幀的urls.py +規則,但是這是一個醜陋的解決辦法...

我有什麼意義?

+0

請閱讀右邊的格式說明 - 您需要縮進代碼以將其標記爲代碼! – katrielalex 2010-08-25 12:32:38

回答

2

初看起來,這似乎是一種情況下添加inclusion tag。您可能想要編寫一個呈現樹菜單的自定義標記。從主視圖中,您可以傳遞必要的上下文變量以使該標籤正常工作。

從文檔:

另一種常見類型的模板標籤的是,通過使其他模板顯示數據的類型。