如何通过模板继承将登录结合到所有站点?

时间:2011-05-10 21:59:24

标签: django django-templates django-login

1。我有一个base.html模板,只描述该网站(基本的简单base.html) 2.我有一个split_screen.html模板,扩展了基本的html文件,如下所示:

{% extends "base.html" %}

{% block content %} - this is the part that changes in base.
    <div id="top"> 
        here come the login form and under it a logo and then a top nav pannel 
    </div>
    <div id="right">
        here come a static right nav pannel that never change, so there is no need for a block
    </div>
    <div id="main">
        {% block main%}
        this is the main part, this is the only thing that will change with every page in (all the files) that will extend from split_screen.html (every other page in the site).
        {% endblock %}
    </div>
{% endblock %}

好吧,我想现在是一个问题的时间......所以,我正在寻找并且无法找到(或者可能只是无法理解如何实施)的方法是使用方式模板继承,仍然有我建立的这个登录后端视图(使用电子邮件而不是用户名)实现....我只是无法解决这个问题因为我读到的每个例子我都将登录称为自己的页面,我需要它嵌入这个页面(或者不要?)。

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了这个问题,我不想使用中间件并且没有使用它,但是通过结合fe教程和提示,我想我得到了。

  1. 构建一个主模板(扩展base.html),其中包含其他东西,形式
  2. 构建一个将继承该模板的mamber模板。
  3. 创建一个简单的索引视图(在您网站的主目录中,其中没有任何内容,但是您构建的主模板的返回呈现(用于在网站上传时借用主页)
  4. 第二个视图是登录的后端,具有身份验证过程“/backend.py”并将返回执行成功登录的用户的用户实例,或者不返回
  5. 创建自定义登录视图,该视图将获取emain和密码字段的request.POST(在检查您是否在帖子中之后 - 这样您就不会得到糟糕的结果,可能会发布帖子和类似的内容)来自后端auth方法的用户实例并检查是否为None然后如果is_valid,如果两者都进入memeber页面,如果没有进入同一页面(将获得但默认,所以你不必放在最后查看重定向以呈现此案例(与reques.POST if。
  6. 相同的级别 好吧,基本上就是这样,现在,每一个请求都会引发这种情况,无论我在哪里,因为我扩展了我们在网站其余部分开始构建的主要模板......

    现在它似乎完美无缺,如果有任何人有疑问或评论我会乐意听到他们... 10x