2013-04-21 24 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

相关问题