본문 바로가기

학습/[The-Origin][SW][Backend] Main Pag

[The Origin][VSCODE][Django] 사용자(User) 내용 커스텀 하기

반응형

Django에서 User (사용자)

사용자

  - 공식문서

https://docs.djangoproject.com/en/4.0/ref/contrib/auth/

 

django.contrib.auth | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

  - 필드 내용

Django의 사용자 살펴보기

  - from django.contrib.auth.models import User

  - class AbstractUser(AbstractBaseUser, PermissionsMixin):

     보통 사용하는 AbstractUser

  - Anonymous

     로그인하지 않으면 Error 나는 이유.

     권한, 내용 등이 아무것도 없음


User 커스텀 실습

User 커스텀 준비

  - App 만들기 (django-admin startapp '앱 이름')

  - Model 만들기

  - Settings.py 앱 추가

Error 해결

  - Error 내용

django.db.migrations.exceptions.InconsistentMigrationHistory:
 Migration social_django.0001_initial is applied before its dependency auth.0001_initial on database 'default'.

  - DB가 쓰던 것이라서 초기화가 필요

  - /App/migrations/__pycache__/ 안에 0001_initial.py 파일 삭제

  - db.sqlite3 삭제 (혹시 모르면 잠시 옮겨두는 것도 방법)

  - /App/__pycache__/파일안에 model 관련 파일 삭제 (__init__ 파일 건드리지 않기)

만든 결과 확인하기

  - VSCODE에서 간단하게 확인하기

  - Tool이용해서 확인

     

2022.04.17 - [공부/[SW][Backend][Pre-Origin] Main Pag] - [The Origin][VSCODE][Django] DB Tool (DBeaver) 따라하기


User 확장 실습

User 확장

  - 데이터 성질에 따라서 맞춰서 추가할 수 있다

  - Foreignkey를 사용한다

  - Code 추가

 

결과 확인

  - admin을 통해서 확인이 가능하다


사용자(User) 매니저

  ※ Django Model이 Query를 사용할 때 제공해주는 Interface

일반 생성 User? superuser?

  - User를 만들 때 일반 user와 superuser가 나눠진다.

  - 특징 등을 알아서 역할에 맞게 사용해야한다.

  - code내에서 확인가능

User 매니저 구현(커스터마이징)

https://docs.djangoproject.com/en/4.0/topics/auth/customizing/

  - usermanager 같은 변수명은 문제가 되기때문에 'as' 사용해서 다른이름으로 사용

      ※ set_password : 해싱 되어있음. 따라서 사용하기위해서 check_password 같은 기능 필요

        Make_password

  - 유효성 검사 추가

  - 사용자 입력이 아닌 시스템에서 분기 처리 (나머지 기능 구현)

  - 만든 기능 User에 연결

  - 이메일 미작성시 Error 확인 (기본제공에는 공란이여도 괜찮았음)


Tip

변수 명 앞에 '_' 넣은 것

  : 외부에 노출보다는 숨겨서 내부에서만 사용하기 위한 것

사용자 비밀번호

  : 암호화(해싱)을 사용해서 비밀번호 만듬

    관리자도 복호화가 안되기 때문에 볼 수 없음

 

 

반응형