Как передать вошедшего в систему пользователя direct_to_template? - PullRequest
0 голосов
/ 19 января 2011

Я использую direct_to_template для ссылки, но мне нужен авторизованный пользователь для отображения страницы. Как передать его на direct_to_template?

Ответы [ 2 ]

7 голосов
/ 19 января 2011

Если переменная TEMPLATE_CONTEXT_PROCESSORS в settings.py настроена на включение 'django.contrib.auth.context_processors.auth', она уже будет в контексте страницы. (Это настроено по умолчанию).

В универсальном представлении direct_to_template используется RequestContext, поэтому будет переменная контекста с именем user, которая предоставит текущего вошедшего в систему пользователя (или AnonymousUser, если вошедшего в систему пользователя нет). *

Например, для отображения имени пользователя в вашем шаблоне: {{ user.username }}.

Для получения дополнительной информации см. Документацию django на обработчике контекста аутентификации .

0 голосов
/ 05 августа 2013

добавьте следующее в ваш логин перед методом GET

def custom_proc(request):

        return {
            'app': 'myapp',
            'user': request.user,
            'ip_address': request.META['REMOTE_ADDR']
        }

в логине просмотра в посте

...... здесь немного кода ......

return render(request, 'html file name',
              context_instance=RequestContext(request,processors=custom_proc]))

в setting.py

TEMPLATE_CONTEXT_PROCESSORS = (                         'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
)

и в html файле

Hello, username = {{ user.username }} id ={{ user.id }}
...