2009-11-09 27 views

Trả lời

2

Đây là một trong những quyền hạn của Django mẫu ngôn ngữ không cung cấp cho bạn. Bạn có một vài tùy chọn:

  1. Tính giá trị này trong chế độ xem của bạn và chuyển giá trị đó vào mẫu trong biến mới.

  2. Cài đặt một add-on thư viện các mẫu thẻ cho phép bạn có được sự so sánh phong phú hơn, ví dụ: http://www.djangosnippets.org/snippets/1350/

  3. Sử dụng một ngôn ngữ khuôn mẫu khác nhau hoàn toàn, nếu bạn nghĩ bạn sẽ được thường xuyên chạy vào hạn chế ngôn ngữ khuôn mẫu .

5

không. nhưng bạn có thể sử dụng django-annoying{% if myarr|length > 1 %} sẽ hoạt động tốt.

4

Rất tiếc, nhưng không có chức năng như vậy trong thẻ 'if' của django. Có một số rumors that smarter if tag will be added in 1.2., ít nhất là trong danh sách High priority.

Hoặc bạn có thể sử dụng "smart_if" tag from djangosnippets.com

HOẶC bạn có thể thêm bộ lọc riêng của bạn (giống như bộ lọc length_is) - nhưng nó chỉ thêm mã vô dụng hơn :(

from django import template 
register = template.Library() 

def length_gt(value, arg): 
    """Returns a boolean of whether the value is greater than an argument.""" 
    try: 
     return len(value) > int(arg) 
    except (ValueError, TypeError): 
     return '' 
length_gt.is_safe = False 
register.filter(length_gt) 

Để biết thêm thông tham khảo ý kiến ​​django docs

0

Có thể this sẽ được trợ giúp?

Kiểm tra kích thước bộ sưu tập trong Django các mẫu có phần giới hạn. Các giải pháp duy nhất mà tôi đã sử dụng, đã đi qua một param từ xem để mẫu - nhưng phải trung thực, nếu phụ thuộc vào những gì bạn đang cố gắng để đạt được.

56

Kể từ Django 1,2; nếu hỗ trợ hoạt động boolean và các bộ lọc, vì vậy bạn có thể viết những dòng này như:

{% if myarr|length > 1 %} 
<!-- printing some html here --> 
{% endif %} 

Xem các dự án Django documentation vì nếu với các bộ lọc.

+0

Một điều tò mò: trong 1.6 nếu bạn sử dụng dấu cách như 'myarr | length', django sẽ in nó, nhưng nếu bạn cố gắng so sánh, bạn sẽ gặp lỗi. Để so sánh, tôi phải loại bỏ các khoảng trắng. – aldux

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