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

235
Vistas
El nuevo administrador de Django escrito no funciona en la plantilla

Tengo una aplicación de lista de tareas simple donde cada tarea tiene un campo booleano llamado is_deleted. en mi plantilla de lista, solo quiero mostrar las tareas con is_deleted=False .

Sé que puedo usar Task.objects.all().filter(is_deleted=False) en mi opinión; pero quiero hacerlo con gerentes en mi plantilla . aquí está mi gerente:

 class TaskManager(models.Manager): def available(self): return self.filter(is_deleted=False) . . objects = TaskManager()

aquí está mi vista:

 class TaskList(ListView): model = models.Task context_object_name="tasks" template_name = "home/list.html" paginate_by=5

y aquí está la condición en mi plantilla:

 {% if tasks.available%} ...
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Mi respuesta es un complemento/una corrección de su trabajo:

  • tu gerente esta bien

  • Pero debe especificar en el modelo de tareas que anule el administrador predeterminado por su administrador personalizado de esta manera:

     Class Task(models.Model): # others fields here # override the default objects manager objects = TaskManager() # You can also define a new manager and keep the default objects, in the case you will use it later. # objects = models.Manager() -> Task.objects.all() give all objects # is_available = TaskManager() -> Task.is_available.all() give only nt deleted task.
  • en tus vistas.py

     class TaskList(ListView): model = models.Task context_object_name="tasks" template_name = "home/list.html" paginate_by=5 # If you override the default objects manager with TaskManager # Then you are nothing to do, {{ tasks }} is the queryset in the template # If you defined two managers as recommended above, then you need # to override the queryset attribute of the ListView queryset = Task.is_available.all() # Explicit call of custom manager
  • De todos modos, en su plantilla, no necesita la etiqueta {% si %} para filtrar los resultados, todas sus tareas están disponibles en el nombre del valor context_object_name .

     {% for task in tasks %} {{ task.name }} ... {% endfor %}
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