Odoo 8-значение поля по умолчанию

В форме заказ на продажу я хочу иметь определенное поле для номера продажи клиента. По умолчанию это поле должно быть заполнено номером продажи Odoo, сгенерированным после нажатия на кнопку записи. Но если значение указано вручную, я не хочу копировать номер продажи Odoo.

Так что это мой текущий код :

<field name="pricelist_id" position="after">
    <field name="customer_sale_number" readonly="0" />
</field>

@api.one
@api.depends('name')
def compute_default_customer_sale_number(self):
    if self.customer_sale_number == '/' or self.customer_sale_number is False:
        self.customer_sale_number = self.name

customer_sale_number = fields.Char('Customer reference', compute='compute_default_customer_sale_number', store=True)

Этот код работает, но если значение указано вручную, оно перезаписывается номером продажи Odoo.

Где моя ошибка ?

1 ответ

  1. Вы можете попробовать это, заменив следующий код для решения вашей проблемы.

    @api.one
    @api.depends('name')
    def compute_default_customer_sale_number(self):
        self.customer_sale_number = self.customer_sale_number or self.name
    
    customer_sale_number = fields.Char('Customer reference', compute='compute_default_customer_sale_number', store=True)
    

    Спасибо