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

185
Vistas
¿Qué debo hacer si quiero usar los datos de la base de datos de forma condicional en las plantillas de Django?

Estoy trabajando en una tienda de comercio electrónico en Django. Quiero saber cómo uso los datos de la base de datos pasados a las plantillas usando el método render() , condicionalmente a través de JavaScript, AJAX o JSON.

Por ejemplo, digamos que tengo los siguientes models.py :

 from django.db import models class Suit(models.Model): title = models.CharField(max_length = 100, verbose_name = "Title") img = models.FileField(upload_to = 'suit-products/', null = True, verbose_name = "Picture") def __str__(self): return f"{self.title}" class Buttoning(models.Model): title = models.CharField(max_length = 100, verbose_name = "Title") img = models.FileField(upload_to = 'buttonings/', null = True, verbose_name = "Picture") def __str__(self): return f"{self.title}"

y siguientes views.py

 from django.shortcuts import render def index(request): suit_prods = Suit.objects.all() buttoning = Buttoning.objects.all() context { "suit_prods": suit_prods, "buttoning": buttoning } return render(request, "index/index.html", context)

y siguiente index.html (plantilla):

 {% for element in suit_prods %} <li> <a href="#"> <div id="menu"> <img src="{{ element.img.url }}" /> <span>{{ element.title }}</span> <span></span> </div> </a> </li> {% endfor %}

Ahora lo que quiero es, si el elemento en el que se hizo clic en los element de la lista en index.html tiene el title como "two_piece_suit" , entonces muestre los elementos de {{ buttoning }} como una lista, de lo contrario pase.

Si lo explico más usando alguna sintaxis JS, entonces quiero el siguiente tipo de comportamiento:

 <scrip> var suit_menu = document.getElementsByClassName("menu"); for(var i = 0; i < suit_menu.length; i++) { if(suit_menu.text == "two_piece_suit") { {% for element in buttoning %} <li> <a href="#"> <div id="buttoning"> <img src="{{ element.img.url }}" /> <span>{{ element.title }}</span> <span></span> </div> </a> </li> {% endfor %} } } </script>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si entiendo correctamente, no necesariamente necesita JavaScript para lograr esto. Además, falta <script> en, y su ciclo for no parece agregar el HTML al documento en absoluto.

Puede lograrlo únicamente con el lenguaje de plantillas de Django integrando los botones for loop con una condición if como esta:

 {% if element.title == 'two_piece_suit' %} {% for button in buttoning %} <Some HTML>{{ button.title }}</Some HTML> {% endfor %} {% endif %}

De esa forma, la lista de botones solo se muestra si el título es traje de dos piezas.

about 4 years ago · Juan Pablo Isaza 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