¿Django es una buena opción para una aplicación web tipo cuestionario?

Sí, Django es una excelente opción para implementar un cuestionario. La pregunta más interesante es: ¿cómo?

En este caso, el aspecto más importante de la implementación del cuestionario es el modelo de datos. Debe hacer (y responder) preguntas de diseño como:

  • ¿Cómo puedo configurar cuestionarios, preguntas y opciones de respuesta?
  • ¿Cómo puedo reutilizar preguntas entre cuestionarios y / o opciones de respuesta entre preguntas?
  • ¿Cómo puedo almacenar las respuestas de los usuarios y vincularlas a los cuestionarios que respondieron?

Configuraría los datos para un cuestionario simple usando modelos de Django como el siguiente:

desde la configuración de importación de django.conf
de los modelos de importación django.db

Cuestionario de clase (modelos.Modelo):
nombre = modelos.CharField (max_length = 255)
# Un cuestionario puede tener muchas preguntas.
# Una pregunta puede ser parte de muchos cuestionarios.
preguntas = modelos.ManyToManyField (Pregunta)

Pregunta de clase (modelos.Modelo):
prompt = models.CharField (max_length = 255)
# Una pregunta puede tener muchas opciones de respuesta.
# Una opción de respuesta puede ser parte de muchas preguntas.
response_options = models.ManyToManyField (ResponseOption)

clase ResponseOption (models.Model):
text = models.CharField (max_length = 255)

clase UserQuestionnaire (models.Model):
user = models.ForeignKey (settings.AUTH_USER_MODEL)
cuestionario = modelos.ForeignKey (Cuestionario)

clase UserResponse (models.Model):
user_questionnaire = models.ForeignKey (UserQuestionnaire)
question = models.ForeignKey (Pregunta)
response_option = models.ForeignKey (ResponseOption)

Después de configurar el modelo de datos, el resto de la aplicación encaja. Necesitará vistas con lógica de negocios para realizar operaciones CRUD en los datos. Necesitará una interfaz de usuario para implementar el diseño visual y comunicarse con las API del servidor.

¡Avísame si necesitas más ayuda!

Django es un buen marco, pero si quieres una forma rápida y fácil (¡y divertida!) De crear una aplicación web, te recomiendo web2py. Es un marco completo que proporciona todo lo que necesita de inmediato. ¡Las baterías están incluidas! No hay que perder el tiempo con la configuración y la configuración.

Yo uso web2py para TODAS mis aplicaciones web. Y a pesar de ser tan fácil de usar, no pierde nada en términos de potencia y flexibilidad. Puedes crear sitios web muy sofisticados con web2py.

Si su objetivo es un cuestionario que se ejecuta en un navegador y presumiblemente almacena respuestas en una base de datos, ¿por qué demonios escribir uno nuevo?

Puede encontrar toneladas de herramientas de código abierto (y comerciales) que ya lo hacen por usted, tanto independientes como módulos para cada plataforma bajo el sol.

Si este es un ejercicio de aprendizaje, sugeriría mirar el código existente y diseccionarlo. Entonces tal vez modificándolo.

Si realmente está buscando ejecutar una encuesta, vaya con Survey Monkey o algo similar.

Parece que necesita tener un sistema de flujo de trabajo, mejor para elegir el marco que tiene uno incorporado, esta publicación podría ayudar: Marcos de flujo de trabajo para Django

Creo que django-forms hace esto casi desde el primer momento … pero hay muchas opciones para cualquier marco que elija … diablos, el mono de encuesta incluso podría ser lo suficientemente bueno

También podría echar un vistazo a matraz o tornado. La curva de aprendizaje es menos difícil pero necesita usar más extensiones (si lo desea)