見出し画像

【14日目】サインアップ機能をつける

今日はサインアップの機能を付けていくよ。

0.参考記事

1.アカウント管理用のアプリ専用のurls.pyファイルを作成

fxapp/accounts/の場所に、新しくurls.pyを手で作成する。
この新しく作ったurl.pyのファイルで、アプリ(機能)に関する部分のurls.pyを管理していくのがいいらしい。

from django.urls import path

app_name = 'accounts'

urlpatterns = [
    path('signup/', views.SignUpView.as_view(), name='signup'),
]

2.手で作ったurls.pyを全体のプロジェクトに反映

プロジェクトの本体に反映して、このaccountsのアプリに関しては、上のurls.pyを見てね、って指示しているみたい。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
   path('admin/', admin.site.urls),
   path('accounts/', include('django.contrib.auth.urls')), # Djangoの認証追加
   path('accounts/', include('accounts.urls')),  # accountsのアプリ用に追加
]

3.サインアップ用のViewを作成

いや、そもそもViewってなんだよってなったけど、画面の部分とそこに表示するデータの部分を取り寄せる、みたいな役割のファイルってわかった。

(それにしてもこの図、もう少しきれいにできるだろってのは内緒)

from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic

class SignUpView(generic.CreateView):
   form_class = UserCreationForm
   success_url = reverse_lazy('login')
   template_name = 'accounts/signup.html'

4.テンプレートのフォルダの作成

fxapp/accounts/templates/accounts/ 

5.サインアップの画面作成

上で作ったフォルダの中でサインアップ用のhtmlを作成。
場所的には fxapp/accounts/templates/accounts/signup.html

from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic


class SignUpView(generic.CreateView):
   form_class = UserCreationForm
   success_url = reverse_lazy('login')
   template_name = 'accounts/signup.html'

http://localhost:8000/accounts/signup/
に接続すると、サインアップ画面が表示された。

あなたによって僕は生かされている。 私もあなたを生かせられますように。