2010-03-30 2 views
4

직원이 아닌 관리자 페이지의 맨 위에 "admin bar"를 붙이고 싶은 django 사이트가 있습니다. 페이지 편집 도구 등 유용한 정보가 들어 있습니다.직원을 제외한 모든 사람을위한 캐시

많은 페이지에 장식자인 @cache_page을 사용하여 문제가 발생합니다. 일반 사용자가 페이지를 조회하면 캐시 된 버전이 관리자 표시 줄없이 표시됩니다 (관리자 사용자의 경우에도). 관리자가 페이지를 처음 조회하면 일반 사용자는 관리 표시 줄을 보게됩니다.

은 템플릿을 지루하게 처리하고 지역 캐시 블록을 추가하지만 많은 템플릿이 있으며 수명이 너무 짧습니다.

이상적으로, 캐싱에 관리자 사용자의 캐시 가져 오기/설정 요청을 무시하도록 지시하는 방법이있을 것입니다. 그러나 최선의 구현 방법을 모르겠습니다.

이 문제를 어떻게 해결할 수 있습니까?

+0

정확히 같은 문제는 아니지만 비슷합니다. http://www.holovaty.com/writing/django-two-phased-rendering/ –

+0

천재이지만 구현하기에 두통처럼 보입니다. 개인화가 필요한 대용량 페이지의 경우 뛰어난 아이디어처럼 보입니다. – Oli

답변

0

사실 나는 전체 진실을 말하지 않았습니다. 로그인 한 유일한 사람은 직원입니다. 다른 모든 사람은 익명입니다.

cache middleware source (무엇을 @cache_page 사용)을 통해 파고 내가 CACHE_MIDDLEWARE_ANONYMOUS_ONLY 설정을 찾았습니다!

나는 이것이 나를 위해 해결해야한다고 생각합니다.

+1

FYI -''CACHE_MIDDLEWARE_ANONYMOUS_ONLY'' 설정은 Django 1.6에서 사용되지 않습니다. 분명히 '크게 효과가 없었기 때문입니다': https://docs.djangoproject.com/en/1.6/releases/1.6/#cache-middleware-anonymous-only -환경 –

관련 문제