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:
Esta vista es utilizada tanto para editar una encuesta ya creada como para crear una nueva encuesta.url(r'^edit_survey/(\w+)/$', 'survey.views.edit_survey'),
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:
Código:
si es así pinta los datos de la encuesta solicitada para poder ser editados con if request.POST:
Código:
Sino comprueba si la se le pasa alguna variable por url return HttpResponse(simplejson.dumps(dict), mimetype='application/javascript')
Código:
Sino se le pasa ninguna variable inicializa el ID para crear una nueva encuensta:try: if view_key != "": surveyID = Survey.objects.get(key=view_key).id except BaseException as e: return error_jump(request)
Código:
Crea el diccionario necesario para pasarle a la plantillaif 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
Código:
He omitido gran parte del 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))
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.