[Django]会員加入と登録ver.2


1.会員加入+確認。py

import json

from django.views           import View
from django.http            import JsonResponse
from django.db              import IntegrityError
from django.core.exceptions import ValidationError

from users.models           import User
from users.validation       import validate_check

class SignUpView(View):
    def post(self, request):

        data = json.loads(request.body)

        try:
            data           = json.loads(request.body)
            user_name      = data['name']
            user_email     = data['email']
            user_password  = data['password']
            user_phone     = data['phone']
            
            user_create     = User(
                name        = user_name,
                email       = user_email,
                password    = user_password,
                phone       = user_phone,
            )

            validate_check(
                user_email,
                user_password,
            )

            user_create.full_clean()
            user_create.save()
        
            return JsonResponse({'message':'SUCCESS'}, status=201)

        except IntegrityError:
            return JsonResponse({'message':'Duplicated Email exists'}, status=401)

        except KeyError:
            return JsonResponse({'message':'KEY_ERROR'}, status=400)

        except ValidationError as e: 
            return JsonResponse({'message':e.messages}, status=400)
-> except ValidationError as e :
=({"message":e.(複数の属性が存在する)、status=()
=さまざまなプロパティを使用して、さまざまな形式のエラーメッセージまたは情報を表示できます.
= validation.pyからhireへのValidationError(複数の条件で区切られた)を設定する場合、Json形式で各メッセージを表示する場合は、「as e:」と「e.()」を使用します.
=shellで次の練習を行うことができます.
try:
	raise ValidationError('asdf')
 	except ValidationError as e: 

* print(e.__dir__())   <-- 'dir''e.' 가  가진 모든 속성을 나열한다
->前述したように、予想される特定のエラーモデル.pyでビューをプリセットすることもできます.pyをもっときれいに整理することができます.

-->IntegratyErrorはDBに関するエラー...;無知なグーグルの弊害といえる.その後、例外文を削除しif文を追加し、重複電子メールチェックに適用します.
class SignInView(View):
    def post(self, request):

        try:
            data          = json.loads(request.body)
            user_email    = data['email']
            user_password = data['password']

            if not User.objects.filter(email=user_email, password=user_password).exists():
                return JsonResponse({'message':'INVALID_USER'}, status=401)
            
            return JsonResponse({'message':'SUCCESS'}, status=200)

        except KeyError:
            return JsonResponse({'message':'KEY_ERROR'}, status=400)