Django로 성신여자대학교 컴퓨터공학과 'init' 사이트 만들기!
- AbstractUser model 사용
- 사용자 한국 이름, email, 활동년도 필드를 추가해서 사용하려고 AbstratUser를 사용했다.
- UserCreationForm 사용하여 구현하였다.
- 회원가입시 Profile model도 One-to-One으로 생성되게 하였다(models.py)에서 처리했다.
- CBV를 사용해서 구현하였다.
- UserChangeForm을 사용하여 구현하였다.
- PasswordChageForm을 사용하여 구현하였다.
사용자 프로필을 따로 만들고 싶어서 구현하였다.
- User model과 OneToOne 관계 모델이다.
- nickname, bio, img, birthday, git 필드가 사용된다.
- img 필드는 ProcessedImageField로 서버에 이미지 파일로 저장된다.
- profile_upload_to 함수를 구현하여 지정된 이름으로 서버에 저장되게 구현하였다. (upload_to 속성)
- OverwriteStorage 클래스를 구현하여 overwrite 되게 구현하였다. (storage 속성)
- Profile model을 받아와서 쉽게 구현 가능하다.
- ProfileForm이라는 ModelForm을 구현하여 만들었다.
- form을 통해 쉽게 view와 template를 작성할 수 있다.
➕ 추가 예정
- 아이디 찾기
- 비밀번호 찾기
동아리 정기모임 과제를 사이트로 제출하면 좋을 거 같아서 구현해봤다.
- 활동년도, 제목, 내용, 작성자, 작성일시, 수정일시, 마감기한 필드로 구현하였다.
- homework_id와 user_id 필드가 외래키로 사용된다.
- homework_id, user_id, 내용, 업로드파일, 제출일시 필드로 구성된다.
- Profile model의 img 필드와 같이 sfile 필드도 homework_upload_to 함수를 구현하여 지정된 이름으로 서버에 저장되게 하였다.
- 사용자가 로그인하고 homework 페이지에 접속하면 활동 년도 숙제 목록으로 redirect 된다.
- 숙제 목록이 보이고 숙제 제출 여부를 확인할 수 있다.
- 숙제 목록 페이지에서 숙제를 선택하여 누르면 숙제 상세 페이지로 이동된다.
- 숙제 상세 페이지에서 숙제 제목, 내용, 마감기한 등을 확인할 수 있다.
- 사용자가 숙제를 제출했다면 수정 버튼, 제출하지 않았다면 제출 버튼이 보인다.
- 숙제 상세 페이지에서 수정 버튼을 누르면 숙제 수정 페이지로 이동된다.
- 숙제 수정 페이지는 기존 제출한 내용을 불러온다.
- 숙제를 제출하지 않은 사람이 수정 페이지에 접근하면 숙제 제출 페이지로 이동된다.
- 숙제 상세 페이지에서 제출 버튼을 누르면 숙제 제출 페이지로 이동된다.
- 숙제를 제출한 사람이 수정 페이지에 접근하면 숙제 수정 페이지로 이동된다.
- 내용은 비워둘 수 없다. 파일 제출은 하나의 파일만 가능하다.
- 숙제 제출 버튼을 누르면 숙제 상세 페이지로 다시 이동된다.
➕ 추가 예정
- 마감 기한이 지났을 경우 설정