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
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