Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: mamarrach0 en 20 Agosto 2022, 11:30 am



Título: Django no renderiza una template al llamar a su view desde ajax
Publicado por: mamarrach0 en 20 Agosto 2022, 11:30 am
Un saludo a todos los presentes.

Veréis, trabajo en una aplicación en DJANGO junto con Selenium. La idea es abrir una web externa desde el driver de Selenium, insertar un script JS para cargar botones en dicha web, y a la vez esos botones ejecutan una llamada por ajax mediante POST a una url django.



urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index, name='index'),
    path('library', toLibrary, name='library'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)


Los botones cargados desde Selenium, llaman a localhost:8000/library pasando un objeto JSON.

Aquí tengo la view asociada a localhost:8000/library


def toLibrary(request):
    if request.method=="POST":
         print("POST JSON")
         data=json.loads(request.body)
         auctions.append(data)
         content = render(request,"library.html", {"data":auctions})
         return HttpResponse(content)
    else:
        return render(request,"library.html")


He chequeado con fiddler la respuesta de la función de arriba, es un html bien formado y correcto, pero no renderiza ni actualiza el DOM. Imprime el mensaje "POST JSON" en consola bien, todo en orden, en fiddler la respuesta es correcta, pero en el dom no se actualiza nada.