2016-11-06 10 views
0

을 받고 내가 가진 : loggedin.html에서장고 : 사용자가 첫 번째 템플릿에 이름을 통과하려고하지만 views.py에서 이상한 코드 대신

def loggedin(request): 
    return render_to_response('theDB/loggedin.html', {'first_name': User.first_name }) 

내가 가진 :

<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. 
대신에 사용자의 이름을 보는

, 나는 이상한 것은 (유니 코드 객체?)

답변

3

User는 모델 클래스가 아닌 현재 로그인 한 사용자 인 것을 알 수있다. 보기에서 request.user을 사용할 수 있습니다.

def loggedin(request): 
    return render(request, 'theDB/loggedin.html', {'first_name': request.user.first_name) 

참고 내가 대신 render_to_response의 좋습니다 render 바로 가기를 사용했다.

+0

감사합니다. 나는 정확하게 지시를 받았지만 다음 오류가 발생했습니다. 'AnonymousUser'객체에 'first_name'속성이 없습니다. – goobber

+0

'request.user'가'AnonymousUser'이면, ['login_required'] (https://docs.djangoproject.com/en/1.10/topics/auth/default/#the-login-required-decorator) 데코레이터를 사용하여 사용자가보기에 액세스하지 못하게 할 수 있습니다 로그인했습니다. – Alasdair

+0

추가 정보로 질문을 업데이트했습니다. 사용자에게 로그인해야합니다 : def my_view (request) : username = request.POST [ 'username'] password = request.POST [ 'password'] user = authenticate (username = username, password = password) '' '사용자가 없음이 아닌 경우 : ' ''user.is_active : '' '로그인 (요청, 사용자) ' ''# theDB/loggedin.html 성공 페이지로 리디렉션합니다. loggedin.html로 리디렉션되면 로그인이 성공했다는 것을 의미하지 않습니까? – goobber