0

我正在构建的应用程序有问题。我了解如何验证 django 中的用户是否已登录以及他们的会话是否处于活动状态:

if user is not None and user.is_active:

我的问题是我的 django 模板,特别是与该部分Register | Login类似的部分:

                <div id="subnav_registrationLogin">
                    <ul>
                    {% block block_containersupernav %}
                        <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
                        <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
                    {% endblock block_containersupernav %}
                    </ul>
                </div><!-- /subnav_registrationLogin -->

问题是,我的模板是静态的,对于上面的这个小代码片段需要更加动态,例如:

if user is not None and user.is_active:
   Log Out

elif:
   <div id="subnav_registrationLogin">
   <ul>
   {% block block_containersupernav %}
      <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
      <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
   {% endblock block_containersupernav %}
   </ul>
</div><!-- /subnav_registrationLogin -->

如何在模板中实现这一点?如果我不能在模板中,我应该怎么做?谢谢!

4

2 回答 2

3

模板是根据上下文呈现的。所以试试这个:

{% if user.is_authenticated %}
    <a href="{% url logout %}">Logout</a>
{% else %}
    <div id="subnav_registrationLogin">
       <ul>
       {% block block_containersupernav %}
          <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
          <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
       {% endblock block_containersupernav %}
       </ul>
    </div>
{% endif %}

is_authenticated()django.contrib.auth.user是模型中的辅助方法

另外,注意is_activeflag用于检查用户是否处于活动状态,应该用于检查用户是否可以成功登录系统。

request.user.is_authenticated您还可以使用模板访问当前登录的用户。

于 2013-10-16T19:27:36.473 回答
0

所以像这样的东西?

{% if user.is_authenticated %}
<li><a href="{% url "logout" %}">Logout</a></li>
{% else %}
<div id="subnav_registrationLogin">
   <ul>
   {% block block_containersupernav %}
      <li><span><a href="/Register" title="Register for Account">Register</a></span></li>
      <li style="border:none;"><span><a href="/Login" title="Login To Account">Login</a></span></li>
   {% endblock block_containersupernav %}
   </ul>
</div><!-- /subnav_registrationLogin -->
{% endif %}
于 2013-10-16T19:27:22.660 回答