演習課題「ログイン画面とログアウト画面を作る」
右の環境には、「myblog」プロジェクトに「news」というアプリケーションが作成してあります。
この「myblog」プロジェクトの共通のテンプレートディレクトリにあるlogin.htmlとlogged_out.htmlを、共通テンプレートlayout.htmlを利用するよう修正してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#04:ログイン・ログアウト画面のテンプレートを作ろう
ここでは、Djangoのログイン・ログアウト画面を用意します。先ほどの続きとして、独自のテンプレートを追加して、ログイン・ログアウト画面を利用できるようにしましょう。
Username: admin
Password: paizaadmin
Username: paiza
Password: paiza
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/templats/layout.html<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1, shrink-to-fit=no'>
<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css' integrity='sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm' crossorigin='anonymous'>
<style>body {padding-top: 80px;}</style>
<title>Lunchmap</title>
</head>
<body>
<nav class='navbar navbar-expand-sm navbar-dark bg-dark fixed-top'>
<a class='navbar-brand' href='{% url "lunchmap:index" %}'>Lunchmap</a>
<ul class='navbar-nav'>
{% if user.is_authenticated %}
<li class='nav-time'>
<span class='navbar-text'>{{ user }} - </span>
</li>
<li class='nav-item'>
<a href='{% url "logout" %}' class='logout nav-link'>Logout</a>
</li>
{% else %}
<a href='{% url "login" %}' class='login nav-link'>Login</a>
{% endif %}
</ul>
</nav>
<div class='container'>
{% block content %}
{% endblock %}
</div>
</body>
</html>
myapp/templats/registration/login.html{% extends '../layout.html' %}
{% block content %}
<h1>Login</h1>
<section class='common-form'>
{% if form.errors %}
<p class='error-msg'>Your username and password didn't match. Please try again.</p>
{% endif %}
{% if next %}
{% if user.is_authenticated %}
<p class='error-msg'>Your account doesn't have access to this page. To proceed,
please login with an account that has access.</p>
{% else %}
<p class='error-msg'>Please login to see this page.</p>
{% endif %}
{% endif %}
<form action='{% url "login" %}' method='post'>
{% csrf_token %}
<input type='hidden' name='next' value='{{ next }}'/>
{{ form.as_p }}
<button type='submit'>Login</button>
</form>
</section>
{% endblock %}
myapp/templats/registration/logged_out.html{% extends '../layout.html' %}
{% block content %}
<h1>Logged Out</h1>
<p>Thanks for spending some quality time with the Web site today.</p>
<p><a href='{% url "login" %}'>Log in again</a></p>
{% 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/