오늘 느낀 것
- django 복습을 여러번 했는데도 아직 많이 헤메는 것 같다.
'백타가 불여일견' 이라고 강의를 계속 돌려보는 것이 아니라 먼저 코드를
입력해보고 그 다음 강의를 참고하는 것이 좋을 것 같다.
강의를 계속 돌려보기만 한다면 내가 이해하고 들었던 내용이라 모두 알고있다고 착각할 것 같다.
오늘 할 것
- django 복습
오늘 한 것(배운 것)
- user = request.user.is_authenticated (user의 로그인 상태를 확인)
-> 현재 로그인 상태가 어떤지 알아야 할 때 사용!- get_user_model().object.filter(username=username)
-> get_user_model로 사용자가 있는지 검사하고 object.filter함수로 사용자가 입력한 username이 db에 저장된 username이 있는지 검사- UserModel.object.create_user(username=username, password=password, bio=bio)
-> UserModel의 테이블에 사용자가 입력한 값을 항목에 맞게 저장함- auth.authenticate(username=username, password=password)
-> 사용자가 입력한 값이 db에 저장되어 있는 값과 일치한지 검사- auth.login(request, me)
-> me라는 변수가 사용자가 입력한 값과 일치할 때 로그인 시켜주는 함수- auth.logout(request)
-> 상태를 로그아웃으로 바꿔줌 (@login_required 상태에서 가능)- @login_required
-> 로그인 상태에서만 실행할 수 있는 함수라는 뜻- 글쓰기 기능을 구현할 때 바로 모델을 불러와 저장하는 것이 아니라
user = request.user로 로그인 한 사용자를 불러온 후 저장하기!- DTL에서 ForeignKey 모델 필드를 참조한 모델을 불러올 때는 속성을 지칭해주어야한다
ex) {{ tw.author.username }}
tw 모델의 author는 UserModel을 참조했기 때문에 tw.author 다음 .username을 입력해주어야 한다. 그렇지 않으면 UserModel을 다 가져옴- 글 삭제 기능이 생각보다 간단하다.
사용자로부터 id값을 전달받고, 모델에서 해당 id값을 불러와 .delete() 해주면 끝이다.
-> ex) tweet = TweetModel.object.get(id=id) / tweet.delete()
내일 할 것
- django 복습 완료 후 강의 내용을 토대로 template만 제공받아 스스로 구현해보기