2013-01-07 2 views
1

나는 webapp을 통해 django/python에 새로운 것이며 내 길을 가고있다. 내 문제 중 하나를 해결하는 데 도움이 필요합니다.django에서 사용자 그룹 및 캐싱 사용 방법을 찾는 방법은 무엇입니까?

내 앱에서는 각 사용자 (auth_user)를 그룹 중 하나 (auth_group)에 할당 할 계획입니다. 각 그룹에는 여러 사용자가있을 수 있습니다. 나는 auth_group, auth_userauth_user_groups에 항목이 있습니다. 내 질문은 다음과 같습니다.

  1. 로깅 사용자가 어떤 그룹에 속하는지 확인하고 싶습니다.

  2. 세션/캐시에 해당 그룹 정보를 유지하여 모든 페이지에서 해당 그룹에 대한 정보 만 표시 할 수 있습니다.

샘플 코드가 있다면 잘 될 것입니다.

답변

0

context_processor 코드 예제를 사용하여 @ trinchet의 답변을 매우 잘 지원합니다. 당신의 webapp 새 파일 내부

두고는 context_processors.py라는과에이 라인을 쓴다 : 내가 위에서 사용하여 얻을 수 있었다

TEMPLATE_CONTEXT_PROCESSORS = (
    'webbapp.context_processors.user_groups', 
) 
+0

고마워요 ... –

0

1) auth.models.User의 인스턴스가되면 user.groups을 통해 사용자가 속한 모든 그룹을 가져올 수 있습니다. 로그인 할 때 물어보고 싶다면 로그인보기에서이를 수행해야합니다.

2) 세션 또는 캐시 접근법을 사용하여 처리 할 수 ​​있지만 관련이 없지만 일단이 값을 가진 페이지를 렌더링해야하는 그룹이 있으면 템플릿 렌더링에 그룹을 제공해야합니다 이렇게하려면 custom context processor을 사용하는 것이 좋습니다.

+0

감사 :

당신의 settings.py에 마지막으로
def user_groups(request): """ Add 'groups' var to the context with all the groups the logged in user has, so you can access in your templates to this var as: {{ groups }} """ groups = None if request.user.is_authenticated(): groups = user.groups return {'groups': groups} 

'webbapp.context_processors.user_groups'TEMPLATE_CONTEXT_PROCESSOR를 추가 정보. –

관련 문제