• 会員登録の実装

    ここから、会員登録の実装方法についてみていきましょう。

    やることとしては、会員登録するためのViewを作り、そこで会員登録を行うことができるようにします。

    会員登録画面は、signupアプリを作り、その中で作りこみを行っていくことにします。

    コマンドライン
    

    -BASE

    $ python manage.py startapp signup

    次に、settings.pyファイルにアプリを作っていきましょう。

    コード
    

    -BASE/loginproject/settings.py

    INSTALLED_APP = [

    ...

        'signup'

    ]

    次に、urls.pyファイルを編集していきます。

    コード
    

    -BASE/loginproject/urls.py

    from django.contrib import admin

    from django.urls import path, include

    urlpatterns = [

        path('admin/', admin.site.urls),

        path('signup/',include('signup.urls')),    ← new! 

    ]

    次に、signupアプリでurls.pyファイルを作ります。

    コマンドライン
    

    -BASE/signup

    $ touch urls.py

    urls.pyファイルを編集し、viewと関連づけていきます。

    コード
    

    -BASE/signup/urls.py

    from django.urls import path

    from .views import SignUpView    ← new!

    urlpatterns = [

        path('new/', SignUpView.as_view(), name='signup')

    ]

    これで、localhost:8000/signup/newにアクセスすることでSignUpViewを呼び出すような設定ができました。

    次に、SignUpViewを作っていきましょう。

    コード
    

    -BASE/signup/views.py

    from django.contrib.auth.forms import UserCreationForm

    from django.urls import reverse_lazy

    from django.views.generic import CreateView

     

    class SignUpView(CreateView):

        form_class = UserCreationForm

        success_url = reverse_lazy('login')

        template_name = 'signup.html'

    UserCreationFormはdjangoにあらかじめ備えられているユーザー登録用のフォームです。

    具体的には、username、password、password(確認用)の3つのフィールドから作られているフォームです。

    success_urlsは会員登録完了時に遷移するurlを書きます。

    なお、ここではreverseではなく、reverse_lazyが使われていますが、この理由は、classの中で(Viewの中で)reverseを使うときは、reverse_lazyを使わなければエラーが出てしまうからです。

    ここから、signup.htmlファイルを作っていきましょう。

    コマンドライン
    

    BASE/templates

    $ touch signup.html

    実際にsignup.htmlファイルにコードを書いていきましょう。

    コード
    

    <from method="post">

    {% csrf_token %}

    {{ form.as_p }}

    <button type="submit">登録</button>

    これで会員登録するための形が整いました。

    サーバーを立ち上げて、localhost:8000/signup/newと打ってみましょう。

     

    djangoがあらかじめ備えているフォームを使うことによって、簡単に実装できたことがわかるかと思います。

    次からは、ユーザー登録フォームをカスタマイズしていきます。

    ~Django無料講義~のご案内

    Code for Djangoが、4時間超の無料Django講義をはじめました

    •  ・本を出版したCode for Djangoの
       製作者が作ったサイトです。
    •  ・Code for Djangoの内容も、
       動画で詳しく解説しています。
    •  ・動画は順次ふやしていきますので、
       ただで学び続けることが可能です。
    •  ・Djangoの効率的なスキルアップに、
       是非お役立て下さい。