Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

django備忘録20 Authentication Links in the Navbar

Navbarの、認証済みユーザー向けlink

...
        <!-- <li class="dropdown">
....
        </li> -->
  • navbar-rightのあたりを自分用に以下のような感じでカスタマイズする。 とりあえず hrefは空欄でもOK。{{request.user}}などで、パラメーターの挿入も可能。
...
      <ul class="nav navbar-nav navbar-right">
        <li><a href="">フェロー登録{{ request.user }} {{ user }}<</a></li>
        <li><a href="">ログイン</a></li>
...
  • さらに、navbar.htmlのnavbar-rightのあたりを修正していく。

以下のような感じで、is_authenticatedで条件分岐を作ることも可能。

...
      <ul class="nav navbar-nav navbar-right">
      {% if request.user.is_authenticated %}
        <li><a href="">ログアウト</a></li>
      {% else %}
        <li><a href="">ログイン</a></li>
        <li><a href="">フェロー登録</a></li>
      {% endif %}
...
  • 引き続きnavbar.htmlの修正。ログアウトとかに、href先を挿入していく。
      <ul class="nav navbar-nav navbar-right">
      {% if request.user.is_authenticated %}
        <li><a href="{% url 'auth_logout' %}">ログアウト</a></li>
      {% else %}
        <li><a href="{% url 'auth_login' %}">ログイン</a></li>
        <li><a href="{% url 'auth_register' %}">フェロー登録</a></li>
      {% endif %}
  • 実はこのままだと、auth_register のNoReverseMatch at / が表示されてしまう。 ようは、auth_registerが正しくないよってことなんだけど、、、'registration/backends/default/urls.py' のコードを見ると、reverseのnameが記載があ

django-registration/urls.py at master · macropin/django-registration · GitHub

  •  auth_register→registration_register に登録しなおす