Как получить текущие данные пользователя в django

Я пытаюсь получить данные зарегистрированного пользователя, но получаю только имя пользователя

Попробовал эти коды

 user= User.objects.get(id=user_id)
 user= User.objects.filter(id=emp_data.user_id).first()
 user =request.user

этот 3 запрос возвращает имя пользователя

как я могу получить данные пользователя

Эти запросы не возвращают имя пользователя, они возвращают объект User. Вы можете получить доступ к атрибутам объекта, таким как user.name user.email и т.д.

Возможно, вы используете функцию print() для печати объекта, поэтому вы видите имя пользователя. Это имя пользователя происходит из этой реализации (источник на GitHub):

def __str__(self):
    return self.get_username()

Где метод get_username() возвращает имя пользователя, а print выполняет функцию __str__. Если вы хотите увидеть больше свойств или методов объекта, используйте print(dir(user)) или отладку с помощью IDE (или с помощью pdb). Вы можете увидеть тип объекта по функции type(user).

Попробуйте это:

user = User.objects.get(id=user_id)
print(user.__dict__)

Это даст вам все атрибуты класса User

Вы можете попробовать:

def user_information(request, pk):
    user_infor = get_objects_or_404(User, id=pk)
    return render(request, 'infor.html', {'user_infor':user_infor})

А в вашем infor.html вы можете получить информацию о пользователе по:

<p>{{user_infor.user.email}}</p>
<p>{{user_infor.user.username}}</p>
Вернуться на верх