Sử dụng các mẫu Django trong Google App Engine (trên Python), có thể so sánh biến mẫu với một số nguyên trong khối {% if %}
không?Tôi có thể so sánh biến mẫu với số nguyên trong các mẫu Django/App Engine không?
views.py:
class MyHandler(webapp.RequestHandler):
def get(self):
foo_list = db.GqlQuery(...)
...
template_values['foos'] = foo_list
template_values['foo_count'] = len(foo_list)
handler.response.out.write(template.render(...))
mẫu của tôi:
{% if foo_count == 1 %}
There is one foo.
{% endif %}
này thổi lên với 'if' statement improperly formatted
.
Những gì tôi đã cố gắng để làm trong mẫu của tôi là xây dựng một đơn giản nếu/elif/else cây là đúng ngữ pháp để có thể nêu
#foo_count == 0:
There are no foos.
#foo_count == 1:
There is one foo.
#else:
There are {{ foos|length }} foos.
Duyệt mẫu tài liệu Django (this link cung cấp in the GAE documentation dường như cho các phiên bản của Django mới hơn so với những gì được hỗ trợ trên GAE), dường như tôi chỉ có thể sử dụng toán tử boolean (nếu thực tế các toán tử boolean được hỗ trợ trong phiên bản cũ của Django) với chuỗi hoặc biến mẫu khác.
Không thể so sánh các biến với số nguyên hoặc không phải chuỗi với mẫu Django? Tôi chắc rằng có một cách dễ dàng để giải quyết vấn đề này - xây dựng chuỗi tin nhắn ở phía Python thay vì bên trong khuôn mẫu - nhưng điều này có vẻ như một thao tác đơn giản như vậy bạn phải có khả năng xử lý trong một mẫu .
Có vẻ như tôi nên chuyển sang một công cụ tạo khuôn mẫu nâng cao hơn, nhưng khi tôi mới sử dụng Django (mẫu hoặc bất kỳ phần nào của nó), tôi chỉ muốn một số xác nhận trước.
Hệ thống mẫu webapp đến từ Django 0,96; tài liệu có tại http://www.djangoproject.com/documentation/0.96/ Phiên bản mới hơn của Django có sẵn trên App Engine, nhưng có thể khó khăn khi tải chúng khi sử dụng webapp thay vì toàn bộ khung công tác django. – geoffspear