template languages ifequal examples bootstrap python django django-templates django-views django-template-filters

python - languages - Cómo utilizar la etiqueta de ciclo de Django



ifequal django (1)

Esta es una pregunta bastante fácil. Mi objetivo final es poder ver las entradas de mi base de datos en una tabla que puedo ordenar a través de los encabezados de las columnas. He leído la documentación sobre las etiquetas de ciclo, pero no sé si quieren decir ''row1'' y ''row2'' :

{% for o in some_list %} <tr class="{% cycle ''row1'' ''row2'' %}"> ... </tr> {% endfor %}

En segundo lugar, ¿cómo lo implementaría correctamente en mi plantilla? Estoy usando una biblioteca JS muy simple, que permitirá la clasificación:

page.html

{% if Variable %} <table class="sortable"> <tr> <th>Title 1</th> <th>Title 2</th> <th>Title 3</th> <th>Title 4</th> <th>Title 5</th> </tr> {% for stuff in Variable %} <tr class="{% cycle ''stuff'' %}"> <td> <a href="{% url ''detail_page'' stuff.id %}"> {{ stuff.Name|capfirst }}</a> </td> </tr> {% endfor %} </table> {% else %} <p>No Results Found</p> {% endif %}

mi models.py en caso de que lo necesite:

def view(request): Variable = database.objects.all() context = { ''Variable'': Variable, } return render(request, ''app/page.html'', context)

EDITAR: Parece que tuve el código correcto todo el tiempo, solo algunos CSS aplicados de forma desigual que hicieron que mi mesa no se viera como una mesa. La etiqueta del ciclo no fue necesaria, solo el ciclo for. También se vio mejor después de agregar otra fila de la tabla:

{% for stuff in Variable %} <tr> <td>{{ stuff.Name|capfirst }}</td> <td>{{ stuff.Number|capfirst }}</td> </tr> {% endfor %}


Para la etiqueta de ciclo, los dos argumentos se agregarán alternativamente a la plantilla, por ejemplo, el código en su plantilla {% for o in some_list %}<tr class="{% cycle ''row1'' ''row2'' %}"></tr>{% endfor %} generaría:

<tr class="row1"> ... </tr> <tr class="row2"> ... </tr> <tr class="row1"> ... </tr> <tr class="row2"> ... </tr> <!-- ... and so on while there are elements in some_list -->

Y así. Normalmente, adjuntarías algo de CSS a esto, por ejemplo:

<style> .row1 { background: #345678; } .row2 { background: #123456; } </style>

Esto le daría a las filas alternativas diferentes colores de fondo, por ejemplo.