Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

160
Visualizações
Unable to access variable user from template in django 1.10

I'm new to django. I'm implementing user login mechanism in my app. When log the user in i can verify by opening admin app if the user is logged in or not and the user does log in. Now when i try to give user a message for example {{ Hello user.username }} i am getting nothing. Below is my complete code.

view.py

def login_user(request):
    context = RequestContext(request)

    if request.method == "POST":
        login_username = request.POST['username']
        login_password = request.POST['password']

        user = authenticate(username=login_username,password=login_password)

        if user is not None:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect('/albums/')
            else:
                print "Your Account is disabled"
        else:
            print "Invalid login details: {0}, {1}".format(login_username, login_password)
            return HttpResponse("Invalid login details supplied.")
    else:
        return render(request,'music/login.html',{},context)

albums.html

{% if user.is_authenticated %}
            <h1>hello {{ user.username }}!</h1>
        {% else %}
            <h1>hello world!</h1>
        {% endif %}

Help me, i am using Django version 1.10 with python 2.7

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

It's not working because you haven't provided user variable in template context. So either add user variable into your context in the view.

# views.py
# ...
def login_user(request):
    context = RequestContext(request)

    if request.method == "POST":
        login_username = request.POST['username']
        login_password = request.POST['password']

        user = authenticate(username=login_username,password=login_password)

        if user is not None:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect('/albums/')
            else:
                print "Your Account is disabled"
        else:
            print "Invalid login details: {0}, {1}".format(login_username, login_password)
            return HttpResponse("Invalid login details supplied.")
    else:
        context['user'] = user
        return render(request,'music/login.html',{},context)

Or

Try accessing

request.user

instead. Generally request variable is added to context automatically by context processor.

{% if request.user.is_authenticated %}
    <h1>hello {{ request.user.username }}!</h1>
{% else %}
    <h1>hello world!</h1>
{% endif %}
about 4 years ago · Santiago Trujillo Relatório

0

It appears you pass an empty context to your template. Try this:

return render(request,'music/login.html',{'user':user})
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda