0
В views.py у меня есть:Джанго: пытается передать пользователям первое имя в шаблоне, но получить странный код вместо
def loggedin(request):
return render_to_response('theDB/loggedin.html', {'first_name': User.first_name })
В loggedin.html
у меня есть:
<h2>Hi {{ first_name }} you are now logged in!</h2>
<p>Click <a href="/accounts/logout/">here</a> to logout.</p>"
Это то, что я могу найти в браузере:
Hi "<"django.db.models.query_utils.DeferredAttribute object at 0x0000019FD7AA7AC8> you are now logged in!
Click here to logout.
Вместо того, чтобы видеть имя пользователя, я вижу, что странная вещь (объект юникода?)
Спасибо, я сделал точно так, как указано, но получил следующую ошибку: объект «AnonymousUser» не имеет атрибута «first_name» – goobber
Если 'request.user' является' AnonymousUser', это означает, что вы не вошли в систему. Обычно, вы должны использовать декоратор ['login_required'] (https://docs.djangoproject.com/en/1.10/topics/auth/default/#the-login-required-decorator), чтобы пользователи не могли получить доступ к представлению, если они не имеют вошел в систему. – Alasdair
Я обновил вопрос с дополнительной информацией. У меня есть это для входа в систему пользователя: def my_view (request): username = request.POST ['username'] password = request.POST ['password'] user = authenticate (username = имя пользователя, пароль = пароль) '', если пользователь не является None: '' 'if user.is_active: ' '' login (request, user) '' '# Перенаправить на страницу успеха, которая является DB/loggedin.html else ... так как я перенаправить на loggedin.html, не означает ли это, что логин был успешным? – goobber