[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 AbstractBaseUserpassword
last_login
is_active
class AbstractUserusername
first_name
last_name
email
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
usernamepasswordを簡単に入力します.また、前回のリリース時にテストした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!