Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

259
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!