Вопрос:

Как я могу получить имя пользователя, вошедшего в систему в Django?

python django django-templates django-views models

88553 просмотра

6 ответа

311 Репутация автора

Как я могу получить информацию о зарегистрированном пользователе в приложении Django?

Например:

Мне нужно знать имя пользователя, вошедшего в систему, чтобы сказать, кто оставил отзыв:

<form id='formulario' method='POST' action=''>
    <h2>Publica tu tuit, {{ usuario.username.title }} </h2>
    {% csrf_token %}
    {{formulario.as_p}}
    <p><input type='submit' value='Confirmar' /></p>
</form>

В usuario.username.titleя получаю имя пользователя, но в шаблоне, мне нужно , чтобы получить эту информацию от просмотра.

Благодарю. знак равно

Автор: Cris Towi Источник Размещён: 03.06.2013 09:57

Ответы (6)


69 плюса

73456 Репутация автора

Вы можете использовать объект запроса, чтобы найти вошедшего в систему пользователя

def my_view(request):
    username = None
    if request.user.is_authenticated():
        username = request.user.username

Согласно https://docs.djangoproject.com/en/2.0/releases/1.10/

В версии Django 2.0 синтаксис изменился на

request.user.is_authenticated
Автор: karthikr Размещён: 03.06.2013 10:00

3 плюса

841 Репутация автора

если вы используете старый способ записи представлений, в виде Function-Based-Views ...

по вашему мнению, вы создаете новую переменную, которая называется usuarioдля сохранения request.user, вероятно ...

но если вы вернетесь к Templatea context_instanceи передадите значение Context запроса, вы получите зарегистрированного пользователя, просто получив доступ к request.

// In your views file
from django.shortcuts import render_to_response
from django.template import RequestContext
def your_view(request):
    data = {
        'formulario': Formulario()
        # ...
    }
    return render_to_response('your_template.html',
        data, context_instance=RequestContext(request))


// In your template
<form id='formulario' method='POST' action=''>
    <h2>Publica tu tuit, {{ request.user.username.title }} </h2>
    {% csrf_token %}
    {{ formulario.as_p }}
    <p><input type='submit' value='Confirmar' /></p>
</form>
Автор: Luan Fonseca Размещён: 03.06.2013 11:15

7 плюса

637 Репутация автора

' request.user ' имеет зарегистрированного пользователя.
' request.user.username ' вернет имя пользователя, вошедшего в систему.

Автор: ancho Размещён: 27.08.2014 09:38

31 плюса

11539 Репутация автора

request.user.get_username()или request.user.usernameбывший предпочтительнее.

Документы Джанго говорят:

Так как модель User может быть заменена, вы должны использовать этот метод вместо прямой ссылки на атрибут username.

PS Для шаблонов используйте {{ user.get_username }}

Автор: user Размещён: 29.08.2014 05:51

1 плюс

322 Репутация автора

request.user.get_username() вернет строку электронной почты пользователей.

request.user.username вернет метод.

Автор: Dan Walters Размещён: 06.03.2018 09:42

0 плюса

1 Репутация автора

Для классифицированных представлений используйте self.request.user.id

Автор: sakabio Размещён: 13.06.2019 04:00
Вопросы из категории :
32x32