render_to_response o redirecciona cambia los elementos de la plantilla en Django 1.8

Estoy tratando de verificar si la identificación del correo electrónico ingresada por el usuario existe en la tabla de la base de datos, si existe, me gustaría enrutar a la plantilla ‘prof.html’, de lo contrario, solo se muestra un mensaje en la plantilla login.html.

Ambas condiciones están funcionando bien.

Sin embargo, el problema es cuando uso redirect () o render_to_response (). ¿Los elementos de la plantilla de destino como div, input, etc., se están cambiando automáticamente (prof.html en este caso)?

¿Podemos también enviar la información de contexto a la plantilla de destino? (datos de respuesta o cualquier objeto de la base de datos y redireccionar a la plantilla prof.html a través de la vista en este caso)

A continuación se muestra mi código:

Vistas.py

def verifyme(request): if request.method == "POST": emailid4loginV = request.POST['emailid4login_Aj'] else: emailid4loginV = '' response_data = '' return HttpResponse(response_data, content_type="text/plain") response_data = '' if Employee.objects.filter(email = emailid4loginV).exists(): response_data='Thanks for waiting - login successful' #return render_to_response('app/prof.html', { 'response_data':response_data}, # context_instance = RequestContext( request ) ) return redirect('/myprofile') else: response_data='Ouch! you are not a registered user!' return HttpResponse(response_data, content_type="text/plain") 

urls.py

 url(r'^myprofile$', 'app.views.profile', name='profile'), 

Solo para su información, la vista ‘perfil’ devuelve algunos objetos de la tabla y se representa en la plantilla app / prof.html.

Observé que la plantilla de destino se representa en la misma plantilla login.html (¿Cómo?: En la url del navegador, no veo mi perfil, sino el de inicio de sesión). Pero cuando solicito el perfil de forma manual ingresando la url del sitio web (localhost : xxxxx / myprofile), funciona perfectamente 🙁

URL antes de enviar la solicitud en login.html:

introduzca la descripción de la imagen aquí

URL después de enviar la solicitud en login.html – myprofile se representa en la misma página:

introduzca la descripción de la imagen aquí

Cuando escribo manualmente la URL, la plantilla funciona perfectamente … introduzca la descripción de la imagen aquí

¿Podría por favor dejarme saber cuál podría ser el problema?

EDITAR: Resuelto este problema con un pequeño truco, publicado en el siguiente

https://stackoverflow.com/questions/31091938/why-is-httpresponseredirectreverse-doesnt-redirect-to-new-page

1) En realidad, hay muchas formas de pasar los datos a la siguiente vista … en general, en los casos en que usted tiene una mejor manera: usar sesiones (cookie | localstorage | sessionstorage), es como un portapapeles … guardar los datos de la sesión en una vista Consíguelo más tarde en otro. Por ejemplo:

Primera vista:

 self.request.session['response_data'] = 'some text' self.request.session.set_expiry(0) # user's session cookie will expire when the user's Web browser is closed. 

Otras vistas:

 response_data = self.request.session.get('response_data', '') 

Pero si solo planea usar estos datos en la plantilla, Django tiene un tipo de interfaz de alto nivel y, en su caso, semánticamente correcto para usarlos: el marco de mensajes https://docs.djangoproject.com/en/1.8/ref/ contrib / mensajes /

2) Si desea redirigir a otra vista, utilice mejor los espacios de nombres de url e reverse https://docs.djangoproject.com/en/1.8/ref/urlresolvers/#reverse

 return HttpResponseRedirect(reverse(app.views.profile)) # here I've passed callable object because you have not show your app url namespace, but generally use namespaces 

https://docs.djangoproject.com/en/1.8/topics/http/urls/#url-namespaces