Если вы хотите переопределить метод create
, вы можете увидеть следующий пример:
class ClassName (models.Model): _inherit = "model.name" # Модель, наследуемая от
@api.model
def create(self, vals):
record = super(ClassName, self).create(vals)
# your code here
return record
Убедитесь, что вы используете имя класса в супер-методе.
Если вы хотите добавить ограничения на xyz
, выполните следующие действия:
from openerp.exceptions import ValidationError
@api.constrains('xyz')
def _check_xyz(self):
for record in self:
# Check here the value of "record.xyz"
# Then raise for example a validation error if it is evaluated to False
# example: raise ValidationError("xyz must be ")
@ constrains поддерживает только простые имена полей, точечные имена (поля реляционных полей, например, partner_id.customer) не поддерживаются и будут игнорироваться
@constrains будет срабатывать только в том случае, если объявленные поля в оформленном методе включены в createили написать звонок.Это означает, что поля, отсутствующие в представлении, не будут вызывать вызов во время создания записи.Переопределение create необходимо для обеспечения того, чтобы ограничение всегда срабатывало (например, для проверки отсутствия значения).