tutorial tarantino pelicula descargar cantante django

tarantino - Comprobación del número de elementos en una matriz en una plantilla de Django



django tutorial (5)

Quiero ver si el número de elementos en una matriz en mi plantilla de Django es mayor que 1. ¿Puedo usar la siguiente sintaxis para hacer eso?

{% if {{myarr|length}} > 1 %} <!-- printing some html here --> {% endif %}

Gracias


A partir de Django 1.2; Si admite operaciones y filtros booleanos, puede escribir esto como:

{% if myarr|length > 1 %} <!-- printing some html here --> {% endif %}

Ver la documentation Proyecto Django para si con filtros.


Este es uno de esos poderes que el lenguaje de plantillas de Django no te brinda. Tienes pocas opciones:

  1. Calcule este valor en su vista y páselo a la plantilla en una nueva variable.

  2. Instale una biblioteca complementaria de etiquetas de plantilla que le permita obtener comparaciones más completas, por ejemplo: http://www.djangosnippets.org/snippets/1350/

  3. Use un lenguaje de plantillas diferente por completo, si cree que se encontrará con limitaciones de lenguaje de plantillas.


Tal vez this sea ​​de alguna ayuda?

La verificación de los tamaños de colección en las plantillas de Django es algo limitada. La única solución que estaba usando era pasar otro parámetro de la vista a la plantilla, pero para ser honesto, depende de lo que estés tratando de lograr.


Triste, pero no hay tal funcionalidad en la etiqueta ''if'' de django. Hay rumores de que la etiqueta inteligente se agregará en 1.2. , al menos está en High priority lista de High priority .

Alternativamente, puede usar la etiqueta "smart_if" de djangosnippets.com

O puedes agregar tu propio filtro (igual que length_is filter), pero solo agrega más código inútil :(

from django import template register = template.Library() def length_gt(value, arg): """Returns a boolean of whether the value is greater than an argument.""" try: return len(value) > int(arg) except (ValueError, TypeError): return '''' length_gt.is_safe = False register.filter(length_gt)

Para más información consultar django docs.


no. pero puede usar django-annoying , y {% if myarr|length > 1 %} funcionará bien.