[Series 1.DashBoard作成]-15会員に加入する
会員加入機能APIの作成
今回のリリースでは,ログイン機能を作成するために,前段階の会員加入をAPIとして作成する.
最初に見る部分は
Model
です.velog_series_01/dashboard/dashboard_core/models.py
ファイルを開きます.# 유저 Model을 정의한다
class PostUser(AbstractUser):
pass
基本的にプレイヤー情報にはdjango
からテンプレートが提供されていますが、私たちはそれを使うだけなので、上記のいくつかの行のプレイヤーに関するModel
の定義は終わります.では、どのようなデータが格納されているのでしょうか.
上記のソースコードでは、
PostUser
クラスを継承してAbstractUser
モデルを定義します.AbstractUser
の考察により,AbstractBaseUser
モデルを継承していることが分かった.つまり.
class AbstractBaseUser
passwordlast_login
is_active
↑
class AbstractUser
usernamefirst_name
last_name
is_staff
is_active
date_joined
↑
class PostUser
構成構造View
部を見てみましょう.velog_series_01/dashboard/dashboard_core/views.py
ファイルを開き、次のソースを確認します.class PostUserViewSet(ModelViewSet):
queryset = PostUser.objects.all()
def get_serializer_class(self):
if self.action == 'list':
return PostUserSerializer
elif self.action == 'create':
return PostUserPostSerializer
elif self.action == 'update':
return PostUserPostSerializer
elif self.action == 'delete':
return PostUserPostSerializer
else:
return PostUserSerializer
前回のリリースでも言及したが、PostUserViewSet
クラスはModelViewSet
ビューを継承しているため、基本的にはCRUD
処理が含まれている.View
には追加の作業はありません.次に、
Serailzer
をチェックしてみましょう.velog_series_01/dashboard/dashboard_core/serializers.py
class PostUserPostSerializer(serializers.ModelSerializer):
class Meta:
model = PostUser
fields = ("username","password",)
def validate_password(self, value):
if len(value) < 7:
raise serializers.ValidationError("The password has to be at least 7 characters long!")
return value
username
とpassword
を簡単に入力します.また、前回のリリース時にテストしたpassword
が7文字を超えなければ、検証ロジックを追加して検証を行います.はい、最終的に
urls.py
万を確認してテストを行います.DefaultRouter
を使用しているからです.データを
POST
に変換してサーバに送信するだけです.from dashboard_core.forms import PostUserForm
from rest_framework.routers import DefaultRouter
from dashboard_core.views import PostViewSet, PostUserViewSet
router = DefaultRouter()
router.register(r"posts", PostViewSet, basename="post_status")
router.register(r"users", PostUserViewSet, basename="user_status")
次に、サーバをアップグレードし、次のRequest
を試してみましょう.python manage.py runserver
password
を7文字以上に設定すると、以下の登録データのクライアントが返されます.admin
ページで、システムに良好なユーザー登録があるかどうかを確認しましょう.http://localhost:8000/admin/
DATABASE_CORE
>Users
へ登録したばかりのプレイヤーデータが検索されているのが見えます!
以下のプレゼンテーションでは、
Login
機能について説明します.Thank you!
Reference
この問題について([Series 1.DashBoard作成]-15会員に加入する), 我々は、より多くの情報をここで見つけました https://velog.io/@django_apps/Series1-15テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol