본문 바로가기

Django3

[Django] makemigrations 취소하기, migrate 취소하기 1. 먼저 터미널에서 다음 명령어를 입력하여 migration현황을 확인한다 python manage.py showmigrations 그럼 다음과 같이 app들에 대해 진행된 migration목록이 나열된다. account [X] 0001_initial [ ] 0002_newuser account : app name [X] : 이미 migrate 되어 적용됐다는 뜻 [ ] : 아직 migrate가 진행되지 않았다는 뜻 1-1. [ ] 로 아직 migrate가 진행되지 않은 경우 앱 내부에 있는 migrations 폴더에 들어가서 삭제하고자 하는 migrations 파일을 전부 삭제해주자 1-2. [X]로 이미 migrate가 반영된 경우 migration을 취소해준 뒤에 삭제를 진행해주어야 한다. pyt.. 2021. 10. 21.
[Django, mysql 에러] mysql.connector.errors.integrityerror: 1452 (23000): cannot add or update a child row: a foreign key constraint fails Django에서 mysql을 연동한 상태에서 makemigrations을 진행하고 migrate를 진행할 때 이러한 오류가 발생했다. mysql.connector.errors.integrityerror: 1452 (23000): cannot add or update a child row: a foreign key constraint fails 검색해 보니 참조 무결성에 어긋났기 때문에 migrate를 진행할 수 없다고 했다. 일단 원인은 다음과 같다. 1. A라는 model이 B를 fk로 참조한다. 2. B라는 model이 C를 fk로 참조한다. 3. 이때 A라는 모델이 추가로 C를 fk로 참조하는 경우, 문제가 발생하게 된다. 이 모델을 참조하는 것 자체는 문제가 발생하지 않으나 a(A의 object).. 2021. 10. 21.
django urls.py에서 views 함수 호출할 때 인자 전달하기 urls.py에서 url을 작성할 때 뒤쪽에 실행될 views의 함수를 적음으로써 그 함수가 실행되도록 할 수 있다. 이때 url을 통해 받은 내용을 함수로 전달해줄 수도 있다. 예를 들어 post라는 app안에서 url의 뒤쪽에 /20 이라고 주소창에 치면 20을 이용한 함수가 실행되도록 하고자 한다면 path('/',views.post_detail), 이때 는 a라는 인자를 views.py안에 있는 post_detail이라는 함수에 전달할 예정인데 인수의 이름은 a이고 type은 int라는 것을 의미한다. 그리고 views.py의 post_detail에는 def post_detail(request:HttpRequest, a:int): return HttpResponse(f"{a}") }) 라고 작성한.. 2020. 9. 16.