[Python-es] Montar la aplicación

José Jorge Lorenzo Vila jjlorenzo en uci.cu
Jue Ene 21 04:10:05 CET 2010


Me brindo para ayudar en la programación del portal python-es.org si se
deciden por django, que es en el que tengo experiencia.

Aprovechando la oportunidad, tengo una duda de django que he decido
dejar los workarrounds y averiguar que sucede, perdonen que se poco
explicativo, pero en general es lo siguiente:

dada una url de la siguiente forma:
url(r'^project/step/2/','project_step2',kwargs={'tpl': None},name='ps')

su declaración es la siguiente:
def project_step2(request,tpl):
    ....

En otra vista, la invocación de 
return HttpResponseRedirect(reverse(project_step2, kwargs = {'p': 1}))
siempre me retorna NoReverseMatch(Reverse for
'task_t.views.project_step2' with arguments '()' and keyword arguments
'{'p': 1}' not found.)

He estado traceando la función reverse y me he encontrado que la
posibilidad que encuentra es result=project/create_wizard/2/ que es la
url efectivamente, pero con params=[], args=() y kwargs={'p': 1} es
decir, si el reverse lo hago con el parámetro por posición, cambia
args=(1,) y kwargs={} pero params sigue vacío.

Al parecer la declaración de la url no está correcta proque django no se
está enterando del parámetro, vale aclarar que uno de los workarrounds
era capturar los parámetros desde la url y eso si funciona, pero no
quisiera averiguar por qué esta otra no.

Se que las url parecen más naturales de la última forma, etc. Pero me
gustaría saber que estoy haciendo mal.

Desde ya, muchas gracias. 






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