2011-09-19 4 views
3

보기에서 전달하지 않음으로써 request.user를 가져 오는 다른 방법이 있습니까? 뷰에서 모든 함수의 request.user를 템플릿으로 전달하는 것은 잘못된 것이라고 생각합니다. 템플릿이 데이터베이스의 사용자 나 개체를 가져 오는 방법이나 방법이 있습니까?Django에서 request.user 전달 템플릿

답변

8

기본적으로 (나는 장고 버전 1.3에 대해 이야기하고있다.) 당신은 TEMPLATE_CONTEXT_PROCESSORS를 변경할 필요가 없다. default value에 이미 * django.contrib.auth.context_processors.auth *가 포함되어 있기 때문입니다.

는 질문에 그래서 기본적으로, 당신은 사용자, 메시지파마 템플릿에서 변수를 사용할 수 있어야합니다. 예 :

User: {{user.username}} 
{% if perms.appname.permname %} 
    ... do something usefull ... 
{% endif %} 
+1

아야. 미안, 나는 멍청이야. 어떻게 데이터베이스에서 객체를 찾을 수 있을까요? 템플릿이 가져올 수있는 방법이 있습니까? –

+0

database_object에서 무엇을 의미하는지 모르겠습니다. model (model.py에있는 클래스)가 있고이를 표시하려면 [generic views] (https://docs.djangoproject.com/en/1.3/ref/generic-views/#list-detail)를 사용할 수 있습니다. - 일반보기). – vasco

+0

나는이 모델을 SchoolSetting이라고 부르며, 항상 하나 이상의 개체를 포함합니다. 첫 번째 객체 (SchoolSetting.objects.all() [0])를 가져 와서 template_context_processors의 기본값에 넣으려고합니다. –

관련 문제