4
respostas

Não estou conseguindo fazer login , diz que usuário é inváldio

Já tentei com o nome do usuário , com o email e sempre retorna como inválido Abaixo o código da urls, view e Model

urls.py
from django.conf.urls import patterns, url
from usuario.views import RegistraUsuario

urlpatterns = patterns('',
    url(r'^registrar/$',RegistraUsuario.as_view(),name='registrar'),
    url(r'^login/$', 'django.contrib.auth.views.login', {'template_name':'login.html'}, name='login'),
    url(r'^logout/$', 'django.contrib.auth.views.logout_then_login', {'login_url':'/login/'}, name='logout')
)

view.py
from django.shortcuts import render , redirect
from perfis.models import Perfil, Convite
from django.contrib.auth.decorators import login_required

@login_required
def index(request):
    return render(request,'index.html',{'perfis':Perfil.objects.all(),'perfil_logado':get_perfil_logado(request)})

@login_required
def exibir(request,perfil_id):
    perfil = Perfil()

    perfil = Perfil.objects.get(id=perfil_id)

    perfil_logado = get_perfil_logado(request)
    ja_eh_contato = perfil in perfil_logado.contatos.all();
    return render(request,'perfis.html',{'perfil':perfil,'ja_eh_contato':ja_eh_contato})

@login_required
def convidar(request,perfil_id):
    perfil_a_convidar = Perfil.objects.get(id=perfil_id)
    perfil_logado = get_perfil_logado(request)
    perfil_logado.convidar(perfil_a_convidar)

    return redirect('index')

@login_required
def aceitar(request,convite_id):
    convite = Convite.objects.get(id=convite_id)
    convite.aceitar()
    return redirect('index')

@login_required
def get_perfil_logado(request):
    return request.user.pefil


models.py

from django.db import models
from django.contrib.auth.models import User

class Perfil(models.Model):

    nome = models.CharField(max_length=255,null=False)
    telefone = models.CharField(max_length=15,null=False)
    nome_empresa = models.CharField(max_length=255,null=False)
    contatos = models.ManyToManyField('self')

    usuario = models.OneToOneField(User,related_name='perfil')

    @property
    def email(self):
        return self.usuario.email

    def convidar(self,perfil_convidado):
        Convite(solicitante=self,convidado=perfil_convidado).save()


class Convite(models.Model):
    solicitante = models.ForeignKey(Perfil,related_name='convites_feitos')
    convidado   = models.ForeignKey(Perfil, related_name='convites_recebidos')

    def aceitar(self):
        self.convidado.contatos.add(self.solicitante)
        self.solicitante.contatos.add(self.convidado)
        self.delete()
4 respostas

Olá Júlio, sua função get_perfil_logado() tem um pequeno erro no retorno. Você esqueceu a letra 'r' da palavra 'perfil'. Troque para:

@login_required
def get_perfil_logado(request):
    return request.user.perfil        #corrigir aqui

Teste novamente e veja se funciona.

Infelizmente ainda não deu certo, ele continua informando usuário ou senha inválida

Olá Júlio, você salvou os dados do usuário no banco de dados da aplicação?

Está sim Thais, estou debugando aqui, parece que ele não está encontrando a rota login post, vou dar mais uma olhada, obrigado por enquando

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software