내 웹 사이트에는 익명 사용자와 로그인 한 사용자가 동일한 목록이 있습니다. 세션 사전을 사용하여 데이터를 저장합니다. 그러나 로그 아웃 할 때 django.contrib.auth.views.logout은 session.flush()를 사용하므로 세션 값을 잃습니다 ..... 세션을 제거하여 사용자 정의 로그 아웃을 만들면 .flush(), 로그 아웃 할 수 없습니다. 누군가가 flush()를 오버라이드 (override)하는 방법 또는 익명 및 로그인 한 사용자에 대한 공통 목록을 작성할 수있는 다른 방법을 알려줄 수 있습니까?django- 익명 및 로그인 한 사용자에 대한 공통 목록을 유지하는 방법
1
A
답변
2
는
def logout_view(logout):
# Do whatever pre conditions you have here.
my_list = request.session['user_list']
logout(request)
# Now Django would have flushed your previous sessions and created a new session.
request.session['user_list'] = my_list
return HttpResponse() # Or render to response i.e whatever you do.
지금 세션이 익명 사용자 작성되고 있는지 확인 'USER_LIST'라는 목록을 가지고 말할 수 있습니다. 그리고 나머지는 모두 작동합니다. 희망은 당신을 위해 않습니다.
+0
그래 .. 그게 ... 고마워. –
+0
환영합니다. 대답을 좋아한다면 투표 해주세요. –
호기심에서 벗어나, 어디에서 오는 목록 값이 있습니까? 모델의 객체? 왜 그것들을 세션에 첨부해야합니까? 작업에 따라 더 좋은 방법 일 수 있습니다. – Austin
yup .. 값은 개체에서 얻은 것입니다. 기본적으로 내 웹 사이트에 제품이 있습니다. 나는 익명 사용자와 로그인 한 사용자에게 동일하게 남아 있어야하는 후보 목록을 작성 중입니다. –
사용자와 익명 사용자가 목록에 추가 할 수 있습니까? 아니면 자신 만의 설정입니까? 후자의 경우 lists = Products.objects.all()을 사용하여 템플릿의 컨텍스트에 'lists'를 추가하고 세션을 어지럽히 지 않고 출력 할 수 있습니다. 나는 아직도 당신이 여기서 세션을 사용하는 이유를 모르겠다. – Austin