Я не могу понять поведение API-интерфейса Odoo. Это сводит меня с ума.Как заказать булевское поле в Odoo?
Как вы знаете, если вы хотите заказать модель по некоторым полям, вам необходимо изменить атрибут _order
модели. Он работает нормально.
Теперь предположим, что вы хотите заказать определенный вид по некоторым полям, не изменяя нормальный порядок модели (это означает: упорядочить определенный вид по некоторым полям и остальным представлениям той же модели другими полями) ,
В этом случае вы должны использовать XML-код, указав атрибут default_order
в теге kanban
или tree
, в зависимости от того, какой вид вы изменяете.
Я использовал это в прошлом успешно. Поэтому я хотел применить это снова к просмотру канбана (на этот раз я хочу заказать поле boolean, char и еще char).
Теперь мое удивление: заказ boolean поле меняет порядок следующих полей, если он принимает значения False
.
например. У нас есть 6 записей, которые мы хотим заказать логическим именем, именем и фамилией; в целях канбан с default_order
:
- Правда, Джон Доу
- Правда, Джейн Доу
- Правда, Джон, Xoe
- Ложные, Джон, Die
- Ложные, Джейн, Die
- Ложные, Джейн, Се
Таким образом, в данном примере, по мнению канбан мы увидим их упорядоченный тыс является способом:
- Правда, Джейн Доу
- Правда, Джон Доу
- Правда, Джон, Xoe
- Ложные, Джон, Die
- Ложные, Джейн, Се
- Ложные , Jane, Die
Как вы можете видеть, если логические значения True
, записи упорядочены по boolean, имя и фамилия, что я и хочу. Но если он принимает значение False
, то записи упорядочиваются по boolean, имя DESC, фамилия DESC.
Что происходит? Вы испытывали то же самое?Как я могу заказать по boolean, затем char, а затем еще char ??
Большое спасибо @Adrian! Это хороший способ справиться с этим. Но в моем случае представление kanban находится внутри поля 'one2many' внутри формы (это точно такой же случай, как поле' child_ids' в представлении формы 'res.partner'). Поэтому мне нужно изменить контекст в действии, которое вызывает форму, не так ли? И тогда будет ли порядок поиска влиять на представление канбана внутри поля? – forvas
Вы должны просто указать контекст на определение, но вам может понадобиться попробовать несколько вещей. –
Он работает с контекстом в поле. Обходной путь, который я сделал ранее, создавал другое поле типа «Char», которое вычислялось в зависимости от логического поля и «store = True». Этот символ «Char» сохранил значение булева, преобразованное в строку. Итак, в канбане я смог заказать булевым через этот «Чар». Но я думаю, что ваше решение более быстрое и лучшее. Благодарю вас @Adrian! – forvas