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", {})
- urls.py のurlpatternsにaboutページを追加する
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の所を''(シングルクオート)で囲む