Todo 앱 모델 작성하고 확인,데이터 입력하기

일단 해보기·2022년 3월 23일
0

이제 고장내도 안심할수있는 환경이 만들어졌으니 먼저 모델을 설계한다.
대략적으로 필요한 항목들은

  • id(자동으로 생성해줌)
  • 할일 제목 (40자까지, charfield)
  • 내용 (400자. textfield)
  • 작성일 (자동으로 추가되어야함. datefield or datetimefield)
  • 마감일 (수동으로 입력해야함. datefield or datetimefield)
  • 남은 일자( 마감일 - 오늘 날자)
  • 첨부파일 (filefield)
  • 첨부사진 (imagefield)

그리고 작성일/마감일등의 시간이 한국시간으로 나와야 하니까 settings.py에서 timezone 도 Asia/seoul로 바꿔줘야한다.

settings.py에서 todo 앱을 등록해주고, timezone을 바꾼 뒤에 models.py을 연다.

먼저,

from datetime import date
import datetime 

으로 필요한 요소들을 불러온다.

이후는 위에서 정리한것처럼 모델들을 작성해주면 됨!

def __str__(self):
	return f'{self.name} | {self.description} | {self.date_created} | {self.date_deadline} 

마지막에 이렇게 표시해서 알아보기 쉽게 표시되도록 해줌!!

남은 일수는 기본적으로 지원하는 포멧이 없기때문에,

def 남은 일수(self):
        차 = self.date_deadline - date.today()
        일수 = 차.days
        return 일수

로 일단 함수를 만든다.

image와 file 은 파일이 저장되는 경로를 upload_to='경로명' 으로 설정하는것도 잊지 말아야함!!

모델을 다 작성했으면,manage.py 가 있는 폴더로 이동해서,

python3 manage.py makemigrations
python3 manage.py migrate

로 모델 변경사항을 반영해주자!

장고는 DB를 사용할줄 몰라도 장고 쉘이나 관리자 페이지에서 데이터를 가공하는것이 가능하다.

장고 쉘은 아직까지 사용에 익숙하지 않기때문에 관리자 페이지에서 작성하기로 했음.

우선 admin.py에 todo를 등록해준다.

from todo.models import 모델 class들 

모델을 등록해주고,

class 어드민모델(admin.modelAdmin):
    inlines = [인라인 모델, 인라인 모델, ... ] 
    list_display = ['표시할 항목들',....]
    list_filter = ['필터로 사용할 항목']

class 인라인 리스트(admin.StackedInline):
    model = 해당 모델
    
admin.site.register(모델, 어드민모델)

로 등록해주면 되는데,@admin.register(모델)로 사용해도 상관없는것 같다.

여기서 must inherit from 'InlineModelAdmin'오류가 발생했는데,
inlines의 인라인 모델들에 ''를 붙여서 작성했기 때문이었다..

이렇게 작업을 끝내고,

python3 manage.py createsuperuser

python3 manage.py runserver

로 관리자 계정을 만들고, 서버를 실행한다.

127.0.0.1:8000/admin 으로 접속해서 설정한 모델과 관리자페이지가 잘 작동하는지 확인하고, 시험삼아 데이터도 넣어본다.

profile
잘 모를때는 일단 이것저것 해보는 타입..

0개의 댓글