0

構築中のアプリケーションに問題があります。djangoのユーザーがログインしているかどうか、およびセッションがアクティブかどうかを検証する方法を理解しています:

if user is not None and user.is_active:

私の問題は、特に次のRegister | Loginようなセクションを持つ私のdjangoテンプレートです。

                <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_activeフラグはユーザーがアクティブかどうかを確認するために使用され、ユーザーがシステムに正常にログインできるかどうかを確認するために使用する必要があることに注意してください。

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 に答える