Hola es mi primera entrada en el foro, intentaré ser claro y conciso.
Estoy empezando con Django y estoy probando con un código para gestionar encuestas descargado de github: ntusurvey
Tengo problemas con algunas urls que no son servidas.
En concreto:
Código:
url(r'^edit_survey/(\w+)/$', 'survey.views.edit_survey'),
Esta vista es utilizada tanto para editar una encuesta ya creada como para crear una nueva encuesta.
def edit_survey(request, view_key=""):
Si le paso el ID de la encuesta la url responde, por ejemplo: /edit_survey/02
pero si lo que quiero es crear una nueva encuesta: /edit_survey/ me devuelve un error 404.
En un inicio la función comprueba si le pasamos la variable POST:
si es así pinta los datos de la encuesta solicitada para poder ser editados con
Código:
return HttpResponse(simplejson.dumps(dict), mimetype='application/javascript')
Sino comprueba si la se le pasa alguna variable por url
Código:
try:
if view_key != "":
surveyID = Survey.objects.get(key=view_key).id
except BaseException as e:
return error_jump(request)
Sino se le pasa ninguna variable inicializa el ID para crear una nueva encuensta:
Código:
if surveyID != 0:
survey = Survey.objects.get(id=surveyID)
is_collaborator = survey.is_collaborator(request.user)
collaborators = []
for collaborator in survey.collaboration_set.all():
collaborators.append(str(collaborator.user.id))
collaborators = ",".join(collaborators)
title = survey.title
description = survey.description
deadline = survey.deadline
Crea el diccionario necesario para pasarle a la plantilla
Código:
dict = {'surveyID': surveyID, 'survey': survey, "title": title, "description": description, "deadline": deadline,
'is_collaborator': is_collaborator, 'collaborators': collaborators}
template = "edit_survey.html"
return render_to_response(template, dict, RequestContext(request))
He omitido gran parte del código.
Por una parte me gustaría saber si he entendido el concepto y por otra saber por que la dirección localhost/edit_survey/ no pinta la pantalla para crear una nueva encuesta.
El código de la vista al completo está en el repositorio del creador por si he omitido información importante https://github.com/sfdye/ntusurvey/blob/master/survey/views.py
Un saludo y gracias por la ayuda.