2010-10-21 48 views
12

Tôi mới dùng django và không thể tìm cách để làm việc này trong các mẫu django. Ý tưởng là để kiểm tra xem các chữ cái đầu tiên của các thư trước đó có bằng nhau không, ví dụ:Truy cập phần tử mảng trước đó trong mẫu django cho vòng lặp

{% for item in items %} 
    {% ifequal item.name[0] previous_item.name[0] %} 
     {{ item.name[0] }} 
    {% endifequal %} 
    {{ item.name }}<br /> 
{% endforeach %} 

Có lẽ tôi đang cố gắng làm điều này sai và ai đó có thể chỉ cho tôi đúng hướng.

+0

Tôi sẽ đăng câu trả lời nhỏ ngoài chủ đề - nếu bạn đang tìm cách làm điều gì đó "lồng nhau", sau đó bỏ công cụ .objects và sử dụng .tree - bạn sẽ phải cài đặt django-mptt cho điều đó. Tôi đã đi qua điều này một vài ngày trước khi viết các trang phân cấp và các loại, vì vậy chỉ cần tự hỏi;) Chúc mừng. – kovshenin

Trả lời

35

Sử dụng thẻ {% ifchanged %}.

{% for item in items %} 
    {% ifchanged item.name.0 %} 
     {{ item.name.0 }} 
    {% endifchanged %} 
{% endfor %} 

Cũng nhớ rằng bạn phải luôn sử dụng dấu ngoặc nhọn - dấu ngoặc đơn không phải là cú pháp mẫu hợp lệ.

+0

Typo ở cuối – kovshenin

+0

@kovshenin cảm ơn, đã sửa –

+0

Cảm ơn rất nhiều, điều này đã hoàn thành công việc một cách hoàn hảo! – ronalds

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