Quiero incluir la variable mangaid en "{% url 'manga' mangaid %}". Ni ${mangaid} ni mangaid funcionan. ¿Cómo puedo hacer esto?
let input = document.querySelector("#search") input.addEventListener("keyup", () => { document.querySelector("#results").innerHTML = ""; let value = (input.value) fetch(`searchresponse/${value}`).then((response) => response.json()).then((results) => { results.forEach(function (result) { let mangaid = (result["id"]) document.querySelector("#results").insertAdjacentHTML('beforeend', `<a class="result" id="result${mangaid}">${result["title"]}</a>`); document.getElementById("result"+mangaid).addEventListener("click", (event) => { event.target.href = "{% url 'manga' mangaid %}" }) }) }) })Puede hacer esto usando get params fe http://localhost:8000/manga/?a=1 .
En la vista, puede acceder a get params a través request.GET.get('a') , en este caso, el código devolvería 1 de a=1 en la URL.
En JS con djangos url templatetag puedes hacer fetch("{% url 'manga' %}/mangaid=" mangaid)... .
Django reemplazará {% url 'manga' %} con la url llamada manga.
mangaid debe ser una variable js.
El encabezado de la vista debería verse similar a esto:
def mangaView(request): mangaid = request.Get.get('mangaid') print(mangaid) EDITAR: la URL debe tener / para evitar redireccionamientos (301), esto reduce la carga del servidor (importante en producción) http://localhost:8000/abc/?a=1 .