Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
Django webapp // Comentar publicaciones en una página web

Actualmente estoy construyendo una aplicación web con el marco Django de Python. Hay una tarea que realmente no sé cómo manejar.

Digamos que mi página muestra diferentes preguntas de los usuarios (como tweets en twitter). Ahora, quiero brindarles a los usuarios la capacidad de escribir respuestas a las diferentes preguntas que se muestran. Cuando los usuarios hacen clic en un botón de respuesta debajo de una pregunta en particular, se muestra un formulario debajo de la pregunta con un área de texto que se puede enviar. Cuando el formulario completo con texto se envía y se envía al backend, necesito crear una relación de base de datos entre la respuesta recién creada y la pregunta. Para encontrar la pregunta correspondiente en la BD es necesario su ID (clave primaria).

Aquí está mi problema. No sé de dónde sacar el DNI de forma segura.

Una manera fácil sería colocar la identificación en la parte html de la pregunta y luego usarla con javascript, o almacenar las identificaciones como variables de javascript. Sin embargo, como el DOM y los valores de las variables de JavaScript pueden ser modificados por los usuarios en la interfaz, esto no me parece seguro. Si un usuario cambia el valor de ID en el DOM para una pregunta específica, completa el formulario y lo envía al backend, la ID enviada no es la correcta para esta pregunta en particular. Mi consulta de base de datos que utiliza este ID (cambiado maliciosamente) recupera un registro de la base de datos de la tabla de preguntas que no es la pregunta para la que el usuario proporciona una respuesta. Por ejemplo, supongamos que el usuario malintencionado proporciona una respuesta a la pregunta n.° 3, pero cambia la ID en el DOM, que se usaría como parte del formulario, a la n.° 10. Luego, se consultaría la base de datos de preguntas para obtener la clave principal 10 en lugar de 3. Por lo tanto, la relación de la base de datos creada estaría entre la pregunta n.º 10 y la respuesta publicada, que no es correcta.

¿Cómo es posible utilizar ID de base de datos en este caso sin que estén sujetos a ningún cambio malicioso?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una forma estándar (creo) de manejar esto es usar sus vistas/enrutamiento. Su vista detallada de una pregunta ya "conoce" el ID de esa pregunta en particular. Por ejemplo, si la vista detallada de su pregunta es así:

 def detail(request, question_id): question = Question.objects.get(pk=question_id)

entonces su url_pattern para enrutar a esta vista será así:

 urlpatterns = [ path('<int:question_id>/', views.detail, name='detail'), ]

Si desea que los usuarios agreguen respuestas a las preguntas, su vista para hacerlo ya debería conocer el question_id para el cual el usuario desea agregar respuestas. Y le das ese conocimiento agregando el enrutamiento así:

 urlpatterns = [ path('<int:question_id>/', views.detail, name='detail'), path('<int:question_id>/add_answer/', views.add_answer, name='add_answer') ]

Django básicamente se encarga del resto por ti.

Sugeriría revisar el capítulo de vistas del tutorial de Django . O todo el tutorial si no lo tienes.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda