/init

Django로 성신여대 컴퓨터공학과 동아리 'init' 사이트 만들기

Primary LanguagePython

init

Django로 성신여자대학교 컴퓨터공학과 'init' 사이트 만들기!

회원가입, 로그인, 로그아웃

User model

  • AbstractUser model 사용
    • 사용자 한국 이름, email, 활동년도 필드를 추가해서 사용하려고 AbstratUser를 사용했다.

회원가입

  • UserCreationForm 사용하여 구현하였다.
  • 회원가입시 Profile model도 One-to-One으로 생성되게 하였다(models.py)에서 처리했다.

로그인, 로그아웃

  • CBV를 사용해서 구현하였다.

회원정보수정

  • UserChangeForm을 사용하여 구현하였다.

비밀번호수정

  • PasswordChageForm을 사용하여 구현하였다.

프로필

사용자 프로필을 따로 만들고 싶어서 구현하였다.

Profile model

  • 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 model

  • 활동년도, 제목, 내용, 작성자, 작성일시, 수정일시, 마감기한 필드로 구현하였다.

Homework_submit model

  • homework_id와 user_id 필드가 외래키로 사용된다.
  • homework_id, user_id, 내용, 업로드파일, 제출일시 필드로 구성된다.
  • Profile model의 img 필드와 같이 sfile 필드도 homework_upload_to 함수를 구현하여 지정된 이름으로 서버에 저장되게 하였다.

숙제 목록

  • 사용자가 로그인하고 homework 페이지에 접속하면 활동 년도 숙제 목록으로 redirect 된다.
  • 숙제 목록이 보이고 숙제 제출 여부를 확인할 수 있다.

숙제 상세

  • 숙제 목록 페이지에서 숙제를 선택하여 누르면 숙제 상세 페이지로 이동된다.
  • 숙제 상세 페이지에서 숙제 제목, 내용, 마감기한 등을 확인할 수 있다.
  • 사용자가 숙제를 제출했다면 수정 버튼, 제출하지 않았다면 제출 버튼이 보인다.

숙제 제출

  • 숙제 상세 페이지에서 수정 버튼을 누르면 숙제 수정 페이지로 이동된다.
    • 숙제 수정 페이지는 기존 제출한 내용을 불러온다.
    • 숙제를 제출하지 않은 사람이 수정 페이지에 접근하면 숙제 제출 페이지로 이동된다.
  • 숙제 상세 페이지에서 제출 버튼을 누르면 숙제 제출 페이지로 이동된다.
    • 숙제를 제출한 사람이 수정 페이지에 접근하면 숙제 수정 페이지로 이동된다.
  • 내용은 비워둘 수 없다. 파일 제출은 하나의 파일만 가능하다.
  • 숙제 제출 버튼을 누르면 숙제 상세 페이지로 다시 이동된다.

➕ 추가 예정

  • 마감 기한이 지났을 경우 설정