2012-02-22 34 views
6

Tôi có danh sách 16 kết quả, hãy gọi nó là "kết quả". Tôi muốn sắp xếp chúng trong một bảng 4 x 4.mẫu biến django biến thành bảng HTML

Sử dụng mẫu django, làm cách nào tôi có thể thực hiện việc này? (Nó không giống như chu kỳ sẽ giúp tôi ở đây)

<table> 
{% for r in results %} 
...? 
{% endfor %} 
</table> 

Cảm ơn !!

Trả lời

16

Bạn có thể sử dụng thẻ cycle cho việc này.

<table> 
    {% for r in results %} 
    {% cycle '<tr>' '' '' '' %} 
     <td>{{r.content}}</td> 
    {% cycle '' '' '' '</tr>' %} 
    {% endfor %} 
</table> 

Would ra một cái gì đó giống như ...

<table> 
    <tr> 
    <td>result 1</td> 
    <td>result 2</td> 
    <td>result 3</td> 
    <td>result 4</td> 
    </tr> 
    <tr> 
    <td>result 5</td> 
    <td>result 6</td> 
    <td>result 7</td> 
    <td>result 8</td> 
    </tr> 
    <!-- etc --> 
</table> 
+0

Bí quyết tuyệt vời. Bây giờ tôi đang tiết kiệm này. Học điều mới! – CppLearner

+0

Cảm ơn, hoạt động đúng như tôi cần. cảm kích điều đó. –

7

Bạn cần phải xây dựng một cái gì đó như thế này

<table> 
<tr> 
    <th>header1</th> 
    <th>header2</th> 
    <th>header3</th> 
    <th>header4</th> 
</tr> 
{% for r in result %} 
<tr> 
    <th> {{ result.name }}</th> 
    <th> {{ result.address }}</th> 
    <th> {{ result.time }}</th> 
    <th> {{ result.date }}</th> 
</tr> 
{% endfor %} 
</table> 

miễn là bạn có một mảng (trên thực tế, một cuốn từ điển) theo cách này

result['name'] 
result['address'] 
result['time'] 
result['date'] 
return render_to_response("my_template.html", {'result:result'}) 

Có một số thực hiện điều này. Đây là cách đơn giản nhất. Nhìn vào tài liệu thẻ mẫu Django.

Dưới đây là danh sách các kỹ thuật tôi đã học được trong suốt. Có nhiều hơn, nhưng tôi không có thời gian để ghi lại tất cả chúng. http://binarybugs01.appspot.com/entry/template-iteration-techniques

Đôi khi bạn phải cẩn thận với từ điển ngữ cảnh mà bạn chuyển đến mẫu. Nếu bạn đang đi qua này

result = {'name': 'John', 'time': '12/2/2012'....etc} 
context['result'] = result 
return render_to_response("my_template.html", context} 

Bạn đang iterating trên result.result và các phím là result.result.name


Tôi cũng muốn nhắc nhở bạn rằng bạn có thể có một danh sách, một bộ, một cuốn từ điển, hoặc tuple.You có thể nhập mảng và sử dụng nó, tuy nhiên.

+4

không result.name tôi nghĩ rằng r.name và r.time, r.address, r.date {% cho r trong kết quả% } {{}} result.name {{}} result.address {{}} result.time 0.123.{{result.date}} {% endfor%} – zabusa

Các vấn đề liên quan