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

120
Vistas
¿Cómo se muestra el botón de plantilla si el objeto está vacío?

¿Alguien puede decir dónde me equivoqué?

Tengo 2 modelos: Proyecto y Propósito.

 class Purpose(models.Model): code = models.UUIDField(_('Code'), primary_key=True, default=uuid.uuid4, editable=False) project = models.ForeignKey(Project, on_delete=models.CASCADE) text = models.TextField(_('Text')) comments = models.ManyToManyField("Comment")

Cada proyecto tiene un solo propósito. Entonces, en la página project_detail , quiero mostrar el botón purpose_add solo si ese proyecto no tiene ningún otro objeto de propósito. ¿Por qué no veo el botón cuando no hay un objeto Purpose con el mismo project_code ?

vistas.py:

 def project_detail(request, project_code): *** purpose_is_not_exist = Purpose.objects.exclude(project=project_code).exists() ***

proyecto_detalle.html:

 {% if purpose_is_not_exist %} <button id="purpose-add-button"></button> {% endif %}
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

{% if not purpose_is_not_exist %}

Debes negar el falso bool.

over 4 years ago · Santiago Trujillo Denunciar

0

La confusión es causada por el nombre de la variable purpose_is_not_exist .

 Purpose.objects.exclude(project=project_code).exists()

La declaración anterior devuelve si el objeto Purpose existe. Deberá cambiar el nombre de la variable a purpose_exists para evitar confusiones.

Y, en la plantilla, cuando desee agregar el botón si no existe, entonces niegue la variable:

 {% if not purpose_exists %}

Alternativamente, si desea seguir usando el nombre original de la variable, simplemente anule en la vista.

 purpose_is_not_exist = not Purpose.objects.exclude(project=project_code).exists()
over 4 years ago · Santiago Trujillo 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