Làm thế nào để truy cập forloop.count ngoài cùng với các vòng lặp lồng nhau trong các mẫu Django?


118

Có thể truy cập forloop.count cho vòng lặp ngoài cùng trong mẫu sau trong Django:

{% for outerItem in outerItems %}
    {% for item in items%}
        <div>{{ forloop.counter }}.&nbsp;{{ item }}</div>
    {% endfor %}
{% endfor %}

forloop.count trả về bộ đếm trong cùng của vòng lặp trong ví dụ trên

Câu trả lời:


230

Bạn có thể sử dụng forloop.parentloopđể đi ra bên ngoài forloop, vì vậy trong trường hợp của bạn {{forloop.parentloop.counter}}.


14

bạn cũng có thể sử dụng với

Lưu trữ một biến phức tạp dưới một tên đơn giản hơn. Điều này rất hữu ích khi truy cập vào một phương thức đắt tiền trên mạng (ví dụ: một phương thức truy cập vào cơ sở dữ liệu) nhiều lần.

{% for outerItem in outerItems %}
  {% with forloop.counter as outer_counter %}
    {% for item in items%}
        <div>{{ outer_counter }}.&nbsp;{{ item }}</div>
    {% endfor %}
  {% endwith %}
{% endfor %}

Nếu sử dụng phiên bản cao của Django, bạn có thể sử dụng

{% with outer_counter = forloop.counter %}

Tôi đã kiểm tra, Django 1.4.x - Django 1.9.x hỗ trợ hai phương pháp.

điều này rõ ràng hơn khi có nhiều vòng lặp


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.