3/3

  • リアライザー
    • シリアライズするためのライブラリ 
    • 入力でもらった情報を隠しながらDBに伝える
    • 出力においても隠す
  • アプリ/serializers.py
    • 新規作成する
    • from rest_framework import serializers
      from .models import Task
      from django.contrib.auth.models import User
      from rest_framework.authtoken.models import Token

      class UserSerializer(serializers.ModelSerializer):
      class Meta:
      model =User
      fields=['id','username','password']
      extra_kwargs={'password':{'write_only':True,'required':True}}

      def create(self,validated_data):
      user=User.objects.create_user(**validated_data)
      Token.objects.create(user=user)
      return user

      class TaskSerializer(serializers.ModelSerializer):

      created_at=serializers.DateTimeField(format="%Y-%m-%d %H:%M",read_only=True)
      updated_at=serializers.DateTimeField(format="%Y-%m-%d %H:%M",read_only=True)

      class Meta:
      model =Task
      fields=['id','title','created_at','updated_at']
    • serializersはrest_frameworkに含まれている
    • Userモデル
    • Token
    • メタクラス
    • fields
    • extra_kwards
      • より詳細に制限をする
        • 辞書型
        • キーに個別のフィールドを
        • 制限を要素におき制限自体も辞書型とする。
          • write_only:True
            • 書き込み専用
          • required:True
            • 要求されても返さない
    • バリデーション
      • 意図しない値が入力された時エラーを発生させる
      • validated_data

 

 

 

  •  そもそもテンプレート化してるっぽい