演習課題「ログイン時だけ新規投稿リンクを表示」
右の環境には、「myblog」プロジェクトに「news」というアプリケーションが作成してあります。
この「news」アプリケーションの記事一覧で、ログイン時だけの新規投稿リンクを表示するよう、テンプレートを修正してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#08:ログイン時だけ投稿・編集・削除リンクを表示
ここでは、Lunchmapアプリにさらにアクセス制御を追加して、ログインしている時だけ、投稿・編集・削除リンクを表示します。そして、ユーザーには、利用できるリンクだけを表示するようプログラムを変更します。
Username: admin
Password: paizaadmin
Username: paiza
Password: paiza
Username: kirisima
Password: kirisima
1. 管理サイトにログインする
2. 「Users」をクリック
3. パスワードを変更したいユーザー名をクリック
4. 「Change user」-「Password」にある、'Raw passwords are not stored, so there is no way to see this user's password, but you can change the password using this form.'の最後にあるリンクをクリック
5. 「Change password」フォームに新しいパスワードを入力
6. 「CHANGE PASSWORD」ボタンをクリック
lunchmap/shops/templates/shops/shop_list.html{% extends 'layout.html' %}
{% block content %}
<h1>お店一覧</h1>
<table class='table table-striped table-hover'>
<tr>
<th>カテゴリ</th><th>店名</th><th>住所</th>
</tr>
{% for shop in object_list %}
<tr>
<td>{{ shop.category.name }}</td>
<td><a href='{% url "lunchmap:detail" shop.pk%}'>{{ shop.name }}</a></td>
<td>{{ shop.address }}</td>
</tr>
{% endfor %}
</table>
{% if user.is_authenticated %}
<div>
<a href='{% url "lunchmap:create" %}'>新しいお店</a>
</div>
{% endif %}
{% endblock %}
lunchmap/shops/templates/shops/shop_detail.html <div>
<a href='{% url "shops:index" %}'>一覧</a>
{% if request.user.id == object.author_id %}
| <a href='{% url "shops:update" shop.pk %}'>編集</a>
| <a href='{% url "shops:delete" shop.pk %}'>削除</a>
{% endif %}
</div>
{% endblock %}
Django でのユーザー認証
https://docs.djangoproject.com/ja/2.0/topics/auth/
Django2 でユーザー認証(ログイン認証)を実装するチュートリアル -2- サインアップとログイン・ログアウト | ITエンジニアラボ
https://it-engineer-lab.com/archives/544
Django2 でユーザー認証(ログイン認証)を実装するチュートリアル -3- ブログアプリへの実装 | ITエンジニアラボ
https://it-engineer-lab.com/archives/737
Djangoでログイン認証できるようになるまで | CodeLab
https://codelab.website/django-login/