2012-01-21 81 views
1

,我有以下的模板代码时遇到显示当用户登录困难。我将能够登录,但是当我访问该网页,它表明我仍未通过身份验证。检查是否验证Django的模板继承

{% extends "base.html" %} 

{% load catalog_tags %} 
{% block site_wrapper %} 
<div id = "main"> 
    <a href="#content" class="skip_link">Skip to main content</a> 
    <div id = "banner"> 
    <div class="bannerIEPadder"> 
     <div class="cart_box"> 
    {% cart_box request %} 
     </div> 

    </div> 
    </div> 
    <div style="float:right;">[search box goes here]</div> 
    <div id="navigation"> 
    <div class="navIEPadder"> 
     <!--navigation tabs at the top of each page --> 
     {% comment %}{% include "tags/navigation.html" %} {% endcomment %} 
     {% category_list request.path %} 
    </div> 
    </div> 
    <div id="middle"> 
    <div id="sidebar"> 
     <!--<div class="sidebarIEPadder">[search box goes here]</br> 
    {% comment %}{% category_list request.path %}{% endcomment %} 
     </div>--> 
    </div> 
    <div id="content"> 
<!--  <a name = "content"></a>--> 
     <div class="contentIEPadder"> 
    {% block content %}{% endblock %} 
     </div> 
    </div> 
    </div> 

    <div id="footer"> 
    <div class="footerIEPadder"> 
     {% footer_links %} 
    </div> 
    </div> 

</div> 
{% endblock %} 

下面是它引用的文件。由于这将是所有模板的扩展,有什么我需要考虑的吗?

###category_list.html 
<!--<h3>Categories</h3>--> 

<!--<ul id="categories">--> 
<ul> 
    {% with active_categories as cats %} 
    {% for c in cats %} 
    <li> 
    {% comment %} 
    {% ifequal c.get_absolute_url request_path %} 
    {{c.name}} 
    {% else %} 
    {% endcomment %} 
    <div><a href="{{c.get_absolute_url}}" class="category">{{c.name}}</a></div> 
    {% comment %}{% endifequal %}{% endcomment %} 
    </li> 
    {% endfor %} 
    <div class="fr"> 
    <ul> 
     <li> 
    {% if user.is_authenticated %} 
    <a href = "{% url django.contrib.auth.views.logout %}">Logout</a> 
    {% else %} 
    <a href = "{% url django.contrib.auth.views.login %}">Login</a> 
    {% endif %} 
     </li> 
    </div> 
{% endwith %} 


</ul> 

<div class="cb"></div> 

我在这里错过了什么吗?

+0

是'django.contrib.auth.context_processors.auth'in你'TEMPLATE_CONTEXT_PROCESSORS' setting.py? – danihp

+1

“用户”对象来自哪里?你能否包含使页面可用的视图功能?您是否正确使用会话中间件? –

+0

@danihp是的,它在那里。 – locoboy

回答

1
  • django.contrib.auth.context_processors.auth在你的TEMPLATE_CONTEXT_PROCESSORS setting.py中吗?
  • 您是否使用requestContext渲染模板?
  • 检查会话启用:MIDDLEWARE_CLASSES应该包含“django.contrib.sessions.middleware.SessionMiddleware”
+0

我使用的RequestContext呈现模板,并设定了TEMPLATE_CONTEXT_PROCESSORS – locoboy

3

你需要一个RequestContext的传递给模板。要做到这一点最简单的方法是导入django.shortcuts和使用方法呈现在您的视图:

return render(request, "my_template.html") 
+0

我传递一个上下文的模板,但它似乎并不适用于Request的 – locoboy