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

256
Vistas
Ajax POST a una URL y luego redirigir a ella

Estoy creando una aplicación web donde el usuario puede crear marcadores en un mapa de folleto. Los detalles del marcador se guardan en un backend con Django. Mi objetivo es redirigir al usuario a una página de detalles para completar los detalles del marcador después de hacer clic en el mapa. Aquí el código js para redirigir a la URL creada con una publicación de Ajax. Se ejecuta cuando el usuario hace clic en el mapa del folleto.

 map.on("click", function (e) { window.location.href = {% url 'create' %}; $.ajax({ url: {% url 'create' %}, data: { markers: markers_dict}, type: "POST" }).done(function (response) { console.log(response); }); }

pero estoy luchando en views.py porque esta redirección y la publicación AJAX crean dos solicitudes, una GET y otra POST:

 def create_marker(request): if request.method == "POST": r = request.POST.get("markers") print(r) return JsonResponse({"response":"succeed"}) else: return JsonResponse({"response":"failed"})

y el urls.py:

 url_patterns = [ path("create/",views.create_marker,name="create"), ]

Siempre devuelve la respuesta fallida incluso si imprime r en la consola. ¿Cómo puedo enviar estos datos de interfaz a la url de creación mientras redirijo a esta url y creo un django con estos datos?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Está saliendo de la página actual antes de realizar la llamada ajax. Mueva la redirección al bloque hecho de la llamada ajax. Algo como esto:

 map.on("click", function (e) { $.ajax({ url: {% url 'create' %}, data: { markers: markers_dict}, type: "POST" }).done(function (response) { window.location.href = “{% url 'create' %}/” + response.id; }); }

Necesitará una URL más en su urls.py para editar el objeto de marcador en el backend. Pruebe el CBV DetailView .

Entonces, primero publica en esta vista con los datos de su mapa. Una vez que tenga éxito, redirija al usuario a la vista de edición de los datos creados.

  1. El usuario hace clic en el mapa Usted crea el objeto mínimo en el backend
  2. Obtiene la ID del objeto creado en caso de éxito
  3. Redirigir al usuario a la vista de formulario/edición de ese objeto
  4. El usuario completa los elementos restantes
  5. El usuario hace clic en guardar
about 4 years ago · Santiago Trujillo 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