Django cho thẻ
Đối với vòng lặp
Vòng lặp for
được sử dụng để lặp qua một chuỗi, như lặp qua các mục trong một mảng, danh sách hoặc từ điển.
Ví dụ
Lặp qua các mục của danh sách:
{% for x in fruits %}
<h1>{{ x }}</h1>
{% endfor %}
Chạy ví dụ »Ví dụ
Lặp qua danh sách từ điển:
{% for x in cars %}
<h1>{{ x.brand }}</h1>
<p>{{ x.model }}</p>
<p>{{ x.year }}</p>
{% endfor %}
Chạy ví dụ »Dữ liệu từ một mô hình
Dữ liệu trong mô hình giống như một bảng có hàng và cột.
Mô hình Member
mà chúng tôi đã tạo trước đó có năm hàng và mỗi hàng có ba cột:
nhận dạng | tên đầu tiên | họ | điện thoại | ngày_tham gia |
---|---|---|---|---|
1 | Emil | giới thiệu | 5551234 | 2022-01-05 |
2 | Tobias | giới thiệu | 5557777 | 2022-04-01 |
3 | Linus | giới thiệu | 5554321 | 24-12-2021 |
4 | Lene | giới thiệu | 5551234 | 2021-05-01 |
5 | Stalikken | giới thiệu | 5559876 | 29-09-2022 |
Khi chúng tôi tìm nạp dữ liệu từ mô hình, nó sẽ xuất hiện dưới dạng một đối tượng QuerySet, với định dạng tương tự như ví dụ về ô tô ở trên: một danh sách có từ điển:
<QuerySet [
{
'id': 1,
'firstname': 'Emil',
'lastname': 'Refsnes',
'phone': 5551234,
'joined_date': datetime.date(2022, 1, 5)
},
{
'id': 2,
'firstname': 'Tobias',
'lastname': 'Refsnes'
'phone': 5557777,
'joined_date': datetime.date(2021, 4, 1)
},
{
'id': 3,
'firstname': 'Linus',
'lastname': 'Refsnes'
'phone': 5554321,
'joined_date': datetime.date(2021, 12, 24)
},
{
'id': 4,
'firstname': 'Lene',
'lastname': 'Refsnes'
'phone': 5551234,
'joined_date': datetime.date(2021, 5, 1)
},
{
'id': 5,
'firstname': 'Stalikken',
'lastname': 'Refsnes'
'phone': 5559876,
'joined_date': datetime.date(2022, 9, 29)
}
]>
Ví dụ
Lặp lại các mục được tìm nạp từ cơ sở dữ liệu:
{% for x in members %}
<h1>{{ x.id }}</h1>
<p>
{{ x.firstname }}
{{ x.lastname }}
</p>
{% endfor %}
Chạy ví dụ »Đảo ngược
Từ khóa reversed
được sử dụng khi bạn muốn thực hiện vòng lặp theo thứ tự đảo ngược.
Ví dụ
{% for x in members reversed %}
<h1>{{ x.id }}</h1>
<p>
{{ x.firstname }}
{{ x.lastname }}
</p>
{% endfor %}
Chạy ví dụ »Trống
Từ khóa empty
có thể được sử dụng nếu bạn muốn làm điều gì đó đặc biệt nếu đối tượng trống.
Ví dụ
<ul>
{% for x in emptytestobject %}
<li>{{ x.firstname }}</li>
{% empty %}
<li>No members</li>
{% endfor %}
</ul>
Chạy ví dụ » Từ khóa empty
cũng có thể được sử dụng nếu đối tượng không tồn tại:
Ví dụ
<ul>
{% for x in myobject %}
<li>{{ x.firstname }}</li>
{% empty %}
<li>No members</li>
{% endfor %}
</ul>
Chạy ví dụ »Biến vòng lặp
Django có một số biến có sẵn cho bạn trong vòng lặp:
- forloop.counter
- forloop.counter0
- forloop.first
- forloop.last
- forloop.parentloop
- forloop.revcounter
- forloop.revcounter0
forloop.counter
Lần lặp hiện tại, bắt đầu từ 1.
forloop.counter0
Lần lặp hiện tại, bắt đầu từ 0.
forloop.first
Cho phép bạn kiểm tra xem vòng lặp có ở lần lặp đầu tiên hay không.
Ví dụ
Vẽ nền màu xanh lam cho lần lặp đầu tiên của vòng lặp:
<ul>
{% for x in fruits %}
<li
{% if forloop.first %}
style='background-color:lightblue;'
{% endif %}
>{{ x }}</li>
{% endfor %}
</ul>
Chạy ví dụ »forloop.last
Cho phép bạn kiểm tra xem vòng lặp có ở lần lặp cuối cùng hay không.
Ví dụ
Vẽ nền màu xanh lam cho lần lặp cuối cùng của vòng lặp:
<ul>
{% for x in fruits %}
<li
{% if forloop.last %}
style='background-color:lightblue;'
{% endif %}
>{{ x }}</li>
{% endfor %}
</ul>
Chạy ví dụ »forloop.revcounter
Lần lặp hiện tại nếu bạn bắt đầu ở cuối và đếm ngược, kết thúc ở 1.
forloop.revcounter0
Lần lặp hiện tại nếu bạn bắt đầu ở cuối và đếm ngược, kết thúc ở 0.