2010-12-06 17 views
8

Me gustaría mostrar datos, tres columnas por fila durante mi. Me gustaría que mi resultado para parecerse a lo siguiente:¿Cómo for-loop tres columnas por fila en Django/python?

<table> 
<tr><td>VALUE1</td><td>VALUE2</td><td>VALUE3</td></tr> 
<tr><td>VALUE4</td><<td>VALUE5</td><td>VALUE6</td></tr> 
</table> 

Alguien sabe cómo hacerlo?

error de sintaxis TemplateSyntaxError en/

'por' declaraciones deben utilizar el formato 'para x en Y': for i in range (0, len (all_products_list), 3)

Respuesta

22

Hay una divisibleby etiqueta.

Así que usted puede hacer algo (feo) como:

<table><tr> 
{% for field in form %} 
    <td>{{ field }}</td> 
    {% if forloop.last %} 
    </tr> 
    {% else %} 
    {% if forloop.counter|divisibleby:"3" %} 
     </tr><tr> 
    {% endif %} 
    {% endif %} 
{% endfor %} 
</table> 

Como alternativa, puede dar a su clase de formulario table_print un método que devuelve una cadena html (envuelto en mark_safe).

+0

Gracias por la respuesta, pero es una etiqueta de plantilla, que por supuesto es una lista de datos recuperados de mysql –

-2
<table> 
{% for i in range(0, len(stuff), 3) %} 
    <tr> 
    {% for j in range(3) %} 
     <td>{{ stuff[i+j] }}</td> 
    {% endfor %}  
    </tr> 
{% endfor %} 
</table> 

Lo sentimos pregunta malentendida.

+0

Gracias por una respuesta tan rápida pero el error de sintaxis? Este método no funcionó en la plantilla? –

Cuestiones relacionadas