Ограничения правил записи Odoo

Что я хочу, чтобы произошло:

Когда логическое значение no_edit равно False, а user_id равно false или текущий пользователь, пользователь должен иметь возможность редактировать запись.

Что на самом деле происходит:

Записи всегда ограничены для редактирования.

Python код полей:

user_id = fields.Many2one(
        comodel_name = 'res.users',
        string = 'User ID',
        readonly = True,
    )
no_edit = fields.Boolean(
        string = "No Edit",
        copy = False,
        default = False
    )

Домен:

['&', '|', ('no_edit', '=', False), ('user_id', '=', False), ('user_id', '=', user.id)]

заранее спасибо

1 ответ

Решение

Домен должен быть:

[('no_edit', '=', False), '|', ('user_id', '=', False), ('user_id', '=', user.id)]

Тот, который вы сделали, оценивает первую часть как оператор &:

('user_id', '=', False) & ('user_id', '=', user.id)

Поскольку он оценивается с помощью "Обратной польской нотации", для получения дополнительной информации вы можете найти или ввести эту ссылку:

https://en.wikipedia.org/wiki/Reverse_Polish_notation

Другие вопросы по тегам