django user/member 모델 설곌

작성자: [관리자] 하얀설표

2025.12.08 22:41 (KST) 작성됨

2025.12.10 13:16 (KST) 수정됨






(12.10) 수정됨.

목적

개별 이용자 구분

 

모델

상태의 경우 탈퇴, 제재로 나눈다.

아무것도 없는 경우 일반 가입 상태로 본다.

유효기간은 제재일 경우에만 사용하고, 해당 날짜까지 로그인을 못하게 하거나, 특정 작업을 막는 용도로 사용하는 용도다.

또한 별도로 분리하여 누적된 제재 기록을 보관하는 것도 가능하다.

class User
닉네임: str
token_{sns}: str # sns 로그인 토큰
로그인 아이디
로그인 비밀번호

class 상태
user: fk, user
상태명: str
유효기간: datetime
변경인: fk, user

class 알림
user: fk, user # 알림 대상
url: str # 목적 url
checked: bool # 확인 여부

 

동작

Create

폼은 모델폼과 폼팩토리를 사용해서 간단하게 하되, 되도록 폼 검증은 post 통신으로 사전 검증을 한다.

폼 전달 후 검증하는 것도 가능하지만, 유효하지 못한 값이 있는 경우 폼으로 전달받은 값을 그대로 전달해야하기 때문이다.

class createview
유저폼 생성

class  닉네임 검증 뷰
if 이미 존재하는 닉네임 => false, 에레 메세지
else => true, 성공 메세지

class 폼 검증 뷰
if invaild => flalse, 에러 메세지
else => true, 성공 메세지

# 템플릿
{{ 폼 }}

{{ 닉네임 검증 js }}
{{ 폼 유효성 검증 js }}

 

Read

조회는 유저 정보 조회만, 관리자인 경우 유저 목록 조회가 가능한 페이지를 제공한다.

pk값 공개시 전체 이용자 수를 추정할 수 있는데, 이를 원치 않는다면 암호화해 숨긴다.

# 단일 조회
pk => 암호화 # pk로 이용자 수를 대략적으로 추정 가능, 감추는 목적

class view
pk =>  복호화
querset = pk

class listview
if not 관리자 => 403 perm err
queryset => pk, 닉네임, 상태, 권한 등

 

Update

닉네임, 자기 소개 등을 수정할 수 있도록 한다.

탈퇴를 하는 경우에는 상태를 추가한다.

제재 등의 관리자 작업은 별도 페이지나 기능을 마련하거나, 목록 뷰에서 가능하게 만든다.

class 탈퇴 뷰
상태 생성, 변경인 = 본인

class 수정 뷰
if not 본인 => 403 perm err

class 검증 뷰
닉네임, 자기소개 등 검증
class  제재 뷰
if not 관리자 => 403 perm err

 

Delete

탈퇴시 정보를 삭제하는 경우 사용.

 






추천 (0)


글 목록

댓글을 달 수 없는 게시물입니다.


"분류없음" 카테고리의 #Python, #Django 관련 게시물