[Python-es] redireccionar en Django pasando datos

lasizoillo lasizoillo en gmail.com
Vie Ene 21 01:30:28 CET 2011


El día 20 de enero de 2011 20:20, (P en vel) <pdlopez en uci.cu> escribió:
> Estoy leyendo el libro de Django de Adrian Holovaty y Jacob Kaplan-Moss y
> estoy en el capitulo 7 procesamiento de formularios y tengo la siguiente
> duda, tengo las vistas que estan abajo,  en  la vista contact cuando el
> formulario es valido me redirecciona para
> HttpResponseRedirect(/contact/thanks/) segun el ejemplo del libro, ahora en
> el libro no me dicen nada de la vista thanks yo con lo que he ido
> aprendiendo puse en mi archivo url.py lo que esta abajo, es decir a la url
> /contact/thanks/ le asigne una vista para que se pudiera mostrar algo
> despues que envio el formulario, y claro tambien hice un template llamado
> thanks.html, no se si esto sea lo mejor, ahora mi duda es de que forma puedo
> capturar en la vista thanks los datos de la vista contact
>
> ***url.py***
> (r'^contact/thanks/$', 'mysite.libreria.views.thank'),
>
>
> -Vista
> ***archivo view.py***
> def contact(request):
>     if request.method == 'POST':
>         form = ContactForm(request.POST)
>         if form.is_valid():
>             topic = form.cleaned_data['topic']
>             message = form.cleaned_data['message']
>             sender = form.cleaned_data.get('sender', 'noreply en example.com')
>             #send_mail('Feedback from your site, topic: %s' % topic,message,
> sender,['pdlopez en hlg.uci.cu'])
>             return HttpResponseRedirect(/contact/thanks/)
>     else:
>         form = ContactForm()
>     return render_to_response('contact.html', {'form': form})
>
> def thanks(request):
>       return render_to_response("thank.html")
>

Lo más simple es usar la sessión:
http://docs.djangoproject.com/en/1.2/topics/http/sessions/


Más información sobre la lista de distribución Python-es