Cómo lograr ir a otra página sin actualizar después de, por ejemplo, hacer clic en un enlace a otra URL. Más ejemplos, tengo una lista de libros que se muestran y cuando hago clic en uno de los libros, me redirigirá a la página del libro seleccionado. Este es el ejemplo del enlace del código. <a class="link" href="{% url 'books:view_book_detail' obj.book.name obj.pk %}">View book</a>
Sé sobre history.pushState() pero, ¿cómo usarlo realmente? ¿Se puede usar con URL de Django? ¿Hay algún otro método entonces indicado?
Usar django regular o javascript simple no es lo suficientemente eficiente para este propósito.
Los marcos de JavaScript modernos como React, Angular, Vue, etc. se utilizan normalmente para estos escenarios de casos.
Pero aún así, no es imposible hacer esto sin marcos JS. Uno de los enfoques que puede usar es usar AJAX.
Puede crear una base.html que será nuestra plantilla básica y luego dividir la aplicación en pequeños componentes como home.html , product-list.html , view-product.html . Que podemos incluir más de acuerdo con nuestros requisitos.
{% include 'view-product.html' with product=product_object %}
(algo como esto)
Realice una solicitud AJAX a /view_product/<id>/ que debería devolver un JsonResponse sobre qué componente mostrar. Y a través de JavaScript, podemos manejar la carga de ese componente específico.
Pero nuevamente, ESTA NO ES UNA BUENA PRÁCTICA , recomendaría usar marcos de JavaScript para aplicaciones de una sola página.
Hice esto usando muchas sentencias if en view.py
debe usar <button type="button"> en lugar de <a> , y verificar si la solicitud POST tiene ese nombre para responder con un contexto diferente, también debe usar declaraciones if en la plantilla para actualizar la interfaz de acuerdo con la respuesta
ES UNA MALA PRÁCTICA , es muy recomendable usar JS framework para tener una aplicación de una sola página