次は Django の管理サイトを準備しよう.この管理サイトを使うと様々な操作ができるようになります.
まず,プロジェクトの urls.py でコメントアウトしていた部分を有効にします.
django_comment_auth/urls.py
from django.contrib import admin
from django.urls import path
from django.urls import include
from django.contrib.auth import views as auth_views
from django_comment_auth import views
urlpatterns = [
path('admin/', admin.site.urls),
path('comments/', include('comments.urls')),
path('', views.index, name='index'),
path('accounts/', include('django.contrib.auth.urls')),
path('accounts/password/', auth_views.PasswordChangeView.as_view(template_name='registration/password_form.html'), name='password_change_form'),
path('accounts/password_change_done/', auth_views.PasswordChangeDoneView.as_view(template_name='registration/password_change_done.html'), name='password_change_done'),
]
settings.py で admin アプリがインストールされている(コメントアウトしていない)ことを確認してください.
django_comment_auth/settings.py
# Application definition
INSTALLED_APPS = [
'comments.apps.CommentsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
現時点では全てのユーザが管理サイトに移動できるようにトップページにリンクを作成します.(後のステップでログイン後に管理サイトのリンクが表示されるように変更します.)
comments/templates/index.html
{% extends "base.html" %}
{% block title %}
コメント投稿アプリケーション
{% endblock %}
{% block content %}
<h1 class="my-5">コメント投稿アプリケーション</h1>
{% if user.is_authenticated %}
<p>
ようこそ {{ user.username }} さん.ログイン中です.
</p>
<p>
<a href="{% url 'comments:index' %}">
コメント一覧ページに移動します.
</a>
</p>
{% else %}
<p>
ログインしていません.
<a href="{% url 'comments:index' %}">
ここからログイン
</a>してください
</p>
{% endif %}
<p>
<a href="/admin/">管理サイト</a>
</p>
{% endblock content %}
Web サーバを再起動して,管理サイトを開きます.
(py39) C:\Users\lecture\Documents\django\django_comment_auth>python manage.py runserver ⏎
Watching for file changes with StatReloader
Performing system checks...
まだこの管理サイトにログインできるユーザが準備できていません.すでに登録済みの user_a などのユーザでもログインはできないことを確認してください.
次のステップでは管理ユーザを登録します.