Объект проверки шаблона QWeb пуст

Я столкнулся с проблемой при отображении данных из базы данных в шаблоне Qweb odoo v8.

Коды следующие:

Контроллер дает мне объект из базы данных: например, stock.quant(), объект из таблицы stock_quant. В этом случае объект пуст. Теперь мне нужно проверить, пуст ли объект в шаблоне. поэтому я попробовал следующее:

Мой контроллер: quant.py

quant = { get value from table }
return request.render('test', {'quant':quant})

в моем шаблоне я должен проверить, пуст ли квант или нет, поэтому я попытался:

<t t-if="quant is Empty" />  # doesn't work
<t t-if="quant is False" />  # doesn't work

тоже проверял наоборот

<t t-if="quant is not Empty" />  # doesn't work
<t t-if="quant is not False" />  # doesn't work

Может ли кто-нибудь помочь мне определить, как проверить, что объект пуст в шаблоне Qweb.

Спасибо,


person user280960    schedule 27.06.2016    source источник


Ответы (2)


Просто попробуй,

<t t-if="not quant">
    <!-- your code -->
</t>

И предположим, что вы хотите проверить любые другие реляционные поля этого объекта, тогда вы должны проверить это следующим образом:

<t t-if="not quant or not 'relational_field_name' in quant">
    <!-- your code -->
</t>
person Emipro Technologies Pvt. Ltd.    schedule 28.06.2016

Вы используете неправильный оператор сравнения.

В python is сравнивает identity, поэтому, если значение равно {} или None, ваш check завершится ошибкой, даже если эти значения всегда являются логическими значениями false.

Просто используйте not quant и любое значение будет в порядке.

person simahawk    schedule 28.06.2016