1

기본적으로 장고에서 변함없는 변수를 만들고 싶습니다.Django : 변수를 영구적으로 만드십시오.

더 정확하게는 사용자가 사이트에 로그인 할 때 (예 : ChoiceField를 통해) 특정 프로젝트를 선택하기를 원합니다. 그런 다음 다른 프로젝트를 선택하지 않는 한이 사이트는 그가 선택한 프로젝트를 "아는"것이므로이 프로젝트와 관련된 몇 가지 작업을 수행 할 수 있습니다.

어떻게 가능합니까? 세션 변수를 사용할 수 있습니까? 아니면 캐시 시스템일까요? 몇 가지 힌트를 주시면 감사하겠습니다 :)

내가

답변

4

예 충분히 명확한되고 있지 않다 있으면 알려 주시기 바랍니다 - 당신은 세션 변수를 사용하는 것이 좋습니다, 이러한하지만 사용자 별 지속한다. 모든 사용자가 캐시를 유지합니다.

체크 아웃 : Django 설명서의 'How to use sessions'

SESSION_ENGINE = 'django.contrib.sessions.backends.cookies' 

을 다음보기에서이 수행 할 수 있습니다 :

기본적으로, 당신은 단지 settings.py에서 세션 엔진을 설정해야 당신이 다음 사용할 수 있습니다

request.session['project'] = 'Some Project' 

그리고 템플릿

:

{{ request.session.project }} 
+0

지금은 사용자가 사이트에 로그인 할 필요없이 내 auth_users 테이블이 아직 채워지지 않습니다. 세션 변수를 사용하는 사용자를 알아야합니까? – Johanna

+0

아니요, 사용자가 등록 할 필요가 없습니다. 쿠키를 식별 할 수있는 쿠키가 제공됩니다. –

+0

신속한 코드로 내 대답을 업데이트했습니다. –

1

세션 저장이 끝난다면 세션이 좋은데 이는 필요한 경우 이 기능을 안정적으로 사용하려면 데이터베이스 세션 백엔드 (또는 Redis와 같은 것)를 사용해야합니다.

user profile modelForeignKey(Project, on_delete=SET_NULL)을 추가하고이를 사용하여 현재 프로젝트를 저장할 수도 있습니다.

관련 문제