Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

ログイン済みのユーザをTemplate側で判断するには?

管理画面などへリンクをログイン済みかどうかで出力したい場合のネタ。
まあログインしてるかどうかわければ良いわけだ。
ズバリこう書く。

sample.html
{% if not user.is_anonymous %}
<div class="user">{{ user.username }}でログインしています。</div>
<ul class="linklist">
  <li><a href="/admin/">編集モードへ</a></li>
</ul>
{% endif %}

is_anonymousメソッドで判断すればよろしいのです。
え?userがそのものがない時は?
って思われるかも知れませんがuserそのものが無い時=anonymousなので内部で空のanonymousなユーザを作ったりしてます。
なので問題ありません。
is_anonymousで物足りない人は継承なりしてメソッド持たせれば良いだけです。(多分)

Templateのcontextには様々なobjectが入っています。
いろんなものにアクセスできたりするので便利かも。
うくく。