如何将Pinax模板视图替换为普通视图

  • 本文关键字:视图 替换 Pinax django pinax
  • 更新时间 :
  • 英文 :


我刚刚在Django 1.4.5上安装了Pinax,在url中主页是一个TemplateView。我想在主页中添加一些逻辑,所以我注释了那个url并创建了一个链接到一个名为home的视图的新url。目前我在该视图中什么都不做,我只是想重现与TemplateView相同的行为,即加载模板。模板加载,但我松散的Pinax变量,作为SITE_NAME(我设置了网站名称,它确实出现时直接加载模板与TemplateView)。

这是原始url:

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

我是这样用的:

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

home是从一个新创建的应用程序中加载的(通过manage.py startapp,该文件夹与manage.py处于同一级别,而不是在项目的文件夹中)

,连接到home的视图为:

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

如果我添加一些上下文,如'SITE_NAME': 'my site',则变量被正确填充。但是我想让它们像以前一样自动填充。

更糟糕的是,当我尝试登录主页时,尽管用户已正确登录(当前登录用户的帐户设置显示正确),但仍显示"已注销"版本。

我做错了什么?

您在返回响应时重置了上下文-因为您没有传递RequestContext的实例。

解决这个问题的最快方法是使用render快捷键,它会在正确的上下文中自动传递:
from django.shortcuts import render
def home(request):
    return render(request, 'homepage.html', {})

相关内容

  • 没有找到相关文章

最新更新