2012-09-11 31 views
5

tôi đã vòng sau trong template jinja2 tôijinja2 đầu tiên x mục trong cho ... nếu lặp

{% for item in list if item.author == 'bob' %} 

tôi đang cố gắng để có được 5 mục đầu tiên những người có bob như một tác giả.

tôi đã cố gắng làm

{% for item in list if item.author == 'bob' and loop.index <= 5 %} 

nhưng nó trả về một lỗi không xác định.

Làm thế nào để nó hoạt động?

+5

Điều này nghe giống như loại điều bạn thường muốn thực hiện trong mã python của bạn, không phải là tạm thời muộn. – geoffspear

Trả lời

9

EDIT:

bạn có thể chỉ đơn giản là tổ các biểu thức ?, tức là

{% for item in list if item.author == 'bob' %} 
    {% if loop.index <= 5 %} 
     do something 
    {% endif %} 
{% endfor %} 
+1

Điều này sẽ nhận được 5 mục đầu tiên của mảng, chứ không phải các mục có tác giả bob .. Nếu tôi có một mảng có 10 mục và bob đã viết 5 mục cuối cùng, điều này sẽ không trả về bất cứ điều gì – applechief

+0

điểm tốt .. hmm –

+1

không rất thanh lịch nhưng làm việc –

3

để bỏ qua các yếu tố x đầu tiên bạn có thể

{% for category in categories[x:] %} 

với tất cả các biểu thức mà bạn có thể sử dụng cho danh sách thông thường

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