2013-04-21 27 views
0

我剛剛在Django 1.4.5上安裝了Pinax,並在主頁上安裝了TemplateView。我想在主頁中添加一些邏輯,所以我評論這個url並創建了一個鏈接到一個名爲home的視圖的新鏈接。目前我在這個視圖中什麼都不做,我只想重現與TemplateView中相同的行爲,即加載模板。模板加載但我放棄Pinax變量,因爲SITE_NAME(我確實設置了站點名稱,並且在直接使用TemplateView加載模板時出現)。如何將家的Pinax模板視圖替換爲普通視圖?

這是原來的網址:

url(r"^$", TemplateView.as_view(template_name="homepage.html"), name="home"), 

這是我用:

url(r"^$", home, name="home"), 

家從剛創建的應用程序加載(與manage.py的startApp,該文件夾是在與manage.py同級別,不在項目文件夾內)

並且連接到家的視圖是:

def home(request): 
    context = {} 
    return render_to_response('homepage.html', context) 

如果我添加一些上下文,如'SITE_NAME':'我的網站',變量會被正確填充。但我希望像以前一樣自動填充它們。

更糟糕的是,當我嘗試登錄主頁時,雖然用戶已正確登錄(帳戶設置爲當前登錄的用戶正確顯示),但仍顯示「已註銷」版本。

我做錯了什麼?

回答

1

當您返回響應時,您已重置上下文 - 因爲您未通過RequestContext的實例。

解決這個最快捷的方法是使用render shortcut,自動通過在正確的上下文:

from django.shortcuts import render 

def home(request): 
    return render(request, 'homepage.html', {}) 
+0

感謝布爾汗!它總是感覺... – Bastian 2013-04-21 12:08:28

相關問題