Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Login Propio en Django 1.6

Estas en el tema de Login Propio en Django 1.6 en el foro de Python en Foros del Web. Saludos gracias de antemano por leer este post. Tengo el siguiente codigo. Código PHP: def validate ( request ):      username  =  request . POST . ...
  #1 (permalink)  
Antiguo 21/02/2014, 10:33
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Exclamación Login Propio en Django 1.6

Saludos gracias de antemano por leer este post.

Tengo el siguiente codigo.

Código PHP:
def validate(request):

    
username request.POST.get('username'False)

    if 
request.method != 'POST':
            
raise Http404('Only POSTs are allowed')

    try:

        
user.objects.get(username=username)

        if 
m.password == request.POST['password']:

            
request.session['member_id'] = m.id

            
return HttpResponseRedirect('/you-are-logged-in/')

    
except user.DoesNotExist:

        return 
HttpResponse("Your username and password didn't match."
el asunto es que me dice que Your username and password didn't match.

Estoy tratando de hacer mi propio login ya que el login del admin que trae django no me es suficiente con los campos de registro y ademas que por seguridad quiero mantener a los admins y a los usuarios en 2 tablas separadas. como veran es un simple login pero no entiendo porque me dice ese error. Ya que en la base de datos el usuario y clave estan exactamente como los pongo en el input field del login.html

gracias de antemano por la ayuda.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #2 (permalink)  
Antiguo 21/02/2014, 11:39
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Login Propio en Django 1.6

NO, no, no no. No hagas eso. Parece PHP.

¿Como que el login de django no te da suficiente con los campos?

No se me hace muy util tener a los administradores en otra tabla, tendrías que checar siempre si existe en las dos u ofrecer un sistema de sesiones totalmente separado del otro.

Si te todas formas quieres hacer eso escribe un Backend de autenticación y no algo tan feo.

Y de tu código especifico, si checas la documentación hay que usar el método check_password, recuerda que no se guardan los passwords en texto plano nunca.

Y Si vas a mandar una excepción de un método no permitido usa HTTPResponseNotAllowed un 404 es para documentos no econtrados.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 21/02/2014, 12:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Login Propio en Django 1.6

Incluso django te incluye una vista para el login.

Solo tienes que agregar esta url y crear tu propio template.
Código Python:
Ver original
  1. url(r'^/$','django.contrib.auth.views.login',{'template_name':'mytemplate.html'}),
  #4 (permalink)  
Antiguo 21/02/2014, 15:32
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Login Propio en Django 1.6

gracias muchachos. lo del encrypted password si yo lo voy a cifrar en Sha1 pero aun no se como lo que mas me preocupa es autenticar y crear la sesion. voy a echarle un ojo a eso pero repito no puedo usar el que trae django por defecto.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #5 (permalink)  
Antiguo 21/02/2014, 17:50
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Sonrisa Respuesta: Login Propio en Django 1.6

Ya me funciono.

Código PHP:

def validate
(request):

    
username request.POST.get('username'False)

    
users user.objects.get(username=username)

    if 
users.password == request.POST['password']:

            
request.session['member_id'] = users.id

            
return HttpResponseRedirect('/profile/view/' users.username)
            
# return render(request, 'user/view_profile.html', {'user': users})

    
else:

        return 
HttpResponseRedirect('/login/'
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.

Última edición por eddwinpaz; 21/02/2014 a las 18:31

Etiquetas: django, field, gui, login, propio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:08.