작성
·
4.6K
답변 6
0
현재 데이터베이스에는 이미 블로그 Post 들이 존재하는 상황입니다. 이 상태에서 created 필드를 새로 만들었는데, created는 null일 수 없다고 했습니다. 따라서 이미 존재하는 Post 들에 created를 추가하고 이 created를 빈 값으로 둘 수 없으니 뭔가 채워져야 합니다.
첫번째 방법.
현재 처럼 2번을 누르고 빠져나와서 default 값을 적어주는겁니다. default=timezone.now를 사용하던지 해서 default 값을 정해주는거지요. 그럼 이미 존재하는 Post들의 created는 현재시점이 입력됩니다.
두번째 방법.
db.sqlite3를 모두 삭제하고, blog의 migrations 폴더의 파일을 모두 삭제합니다. 그럼 db가 존재하지 않으니 더 이상 created가 없는 상태로 존재하는 blog Post가 없겠죠? 따라서 마이그레이션 할 때도 아무런 문제가 발생하지 않게 됩니다.
0
당연히 1 을 눌러 디폴트값으로 넣고 다시 마이그레이션을 해봤지만 해결되지않아 질문드렸습니다.
상단 처음에 보시면 마이그레이션을 할 경우 TypeError: expected string or bytes-like object <<< 라고 오류가 나오는데
이 문제는 어떻게 해결할지 모르겠습니다.
깃에 올려둔 백업파일로 지난강의 부터 다시 시작하고있습니다만 혹여나 해결방법이 있으시면 댓글부탁드립니다. 감사합니다.
0
이미 블로그 post가 db에 존재하는데 null일수 없는 created를 만드니 이걸 어떻게 하겠냐는 의미입니다.
1을 누르면 디폴트값을 넣고 2를 넣으면 마이그레이션을 안한다는 의미입니다.
2를 눌렀으니 마이그레션을 하지 않았던거죠.
0
migrate 할경우
위에 적어놨듯이 (TypeError: expected string or bytes-like object) 라고 나옵니다.ㅠㅠ
makemigrations 할경우 이렇게 나오고요.
0
0
python manage.py makemigrations
python manage.py migrate
(TypeError: expected string or bytes-like object)
을 해봐도 이렇게 나옵니다.
migrations 폴더 안의 모든 파일을 삭제하고(단 __ini__.py는 제외)를 해봐도 블로그페이지는 여전히 똑같은 오류가 나옵니다. 그리고 adim 페이지는 접속이되지만 http://127.0.0.1:8000/admin/blog/post/는 여전히 같은 오류가 나옵니다.