Проверка подлинности в наследовании шаблона Django - PullRequest
1 голос
/ 22 января 2012

У меня есть следующий код в шаблоне, и мне трудно показать, когда пользователь вошел в систему. Я смогу войти, но когда я снова посещаю страницу, это показывает, что я все еще не аутентифицирован.

  {% 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>

Я что-то здесь упускаю?

Ответы [ 2 ]

3 голосов
/ 22 января 2012

Вам необходимо передать RequestContext в шаблон.Самый простой способ сделать это - импортировать django.shortcuts и использовать метод визуализации в вашем представлении:

return render(request, "my_template.html")
1 голос
/ 22 января 2012
  • Является ли django.contrib.auth.context_processors.auth в вашем параметре TEMPLATE_CONTEXT_PROCESSORS.py?
  • Используете ли вы requestContext шаблон рендеринга?
  • Проверьте, включены ли сеансы: MIDDLEWARE_CLASSES должен содержать 'django.contrib.sessions.middleware.SessionMiddleware'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...