Djangoroidの奮闘記

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

django備忘録16 URL Names as Links

URL Names を Links として利用する

  • tryddjango18/views.py を新規で作成する。tryddjango18は今回の例は、settings.pyなどがあるプロジェクトDIRのこと。

  • newsletter/views.py の内容をtryddjango18/views.py にコピペする

  • tryddjango18/views.py のviewの内容を少しずつ修正していく(大幅カット) about ページについてのviewを作る

from django.shortcuts import render

def about(request):
    return render(request, "about.html", {})
    url(r'^about/$', 'trydjango18.views.about', name='about'),

とかこんな感じ

  • navbar.html を修正する
...
      <a class="navbar-brand" href="/">Design Learning Lab</a>
...
        <li class="active"><a href="/">Home</a></li>
        <li><a href="/about">About</a></li>
        <li><a href="/contact">Contact</a></li>
...

※aboutについては、現時点では、templatesがないため、error occuredする

これだと動的ではない。 例えば、urls.py の設定を「contact2」とした場合は、contactへのリンクが途切れてしまう。

  • そこで利用するのが、urls.pyの name="リンク名" の箇所。
...
      <a class="navbar-brand" href="{% url 'home' %}">Design Learning Lab</a>
...
      <ul class="nav navbar-nav">
        <li class="active"><a href="{% url 'home' %}">Home</a></li>
        <li><a href="{% url 'about' %}">About</a></li>
        <li><a href="{% url 'contact' %}">Contact</a></li>
...

という感じにしておくと、urls.py の name を参照してlinkしてくれる!

  • ちなみに、""で囲んだため、url nameの所を''(シングルクオート)で囲む