if self.request.user.is_authenticated:
current_user = User.objects.filter(id=self.request.user.id)
...
old_cart에 저장됨✔️ 정리: 비로그인 사용자는 장바구니가 세션(session)에만 저장됨 → DB의 User.old_cart에는 저장되지 않음
Cart 클래스는 세션을 기반으로 작동함:self.session = request.session
old_cart가 존재하면 복원하지만, 세션에 기존 cart가 이미 있으면 그게 그대로 유지됨✔️ 정리: 로그인해도 세션이 그대로 유지되기 때문에 기존 cart 내용도 살아있음
logout(request)
만약
logout()이후에도 cart를 유지하고 싶다면, logout 전에 cart를old_cart에 저장해두는 작업이 필요합니다.
✔️ 정리: cart는 세션 기반이므로 로그아웃 시 세션 초기화로 함께 사라짐
| 현상 | 이유 |
|---|---|
| 로그인 안 한 상태에서 old_cart에 저장 안됨 | is_authenticated 조건으로 인해 비로그인 사용자 제외됨 |
| 로그인 후에도 cart가 유지됨 | Django는 로그인해도 세션을 유지함 |
| 로그아웃 시 cart 초기화됨 | Django는 로그아웃 시 세션 삭제함 |