2010-04-18 24 views
5

En una vista estoy tratando de crear un nuevo usuario y luego iniciar sesión pero dar como resultado una nueva url en caso de éxito.django crear usuario y registrarlo en

def create(request): 

    if request.method == "POST": 

     # do user creation # 
     user.save() 

     auth_user = authenticate(username=user.username,password=user.password) 

     if auth_user is not None: 
      login(request, auth_user) 

      return HttpResponseRedirect('/user/account/') 

    return render_to_response('create_form.html') 

Así que, ¿Cómo se mantiene el objeto user utilizando el HttpResponseRedirect o validar el usuario conectado en una vista no asociado?

+0

si 'si auth_user no es None:' is necessery ??? – suhailvs

Respuesta

6

El middleware de sesión debe manejar esto de forma transparente. Si encuentra que este no es el caso, entonces debe buscar en esa dirección los problemas.

+0

Entonces, una vez que redirecciono a la nueva página ('/ usuario/cuenta /'), ¿cómo obtengo el objeto 'usuario'? ¿Incluye HttpResponseRedirect un objeto de 'solicitud'? No pensé que sí ... – Scott

+0

Lo obtienes de 'request' ya que el middleware de autenticación lo saca de la sesión y lo coloca allí. Y todo lo que hace 'HttpResponseRedirect' es redirigir el navegador a otro lugar. La nueva solicitud genera una nueva 'solicitud'. –

+0

sí, tienes razón. Una vez que llego a la nueva vista, el objeto de solicitud tiene request.user, pero no puedo entender por qué no lo está pasando a las plantillas de esa vista. – Scott

Cuestiones relacionadas