python - 在以一种形式创建记录时自动创建另一个模型的记录 - Odoo 10

标签 python odoo odoo-10

我的 orm 中有两个模型,即 _service 和 _apple。我想要的是我想用自动写入的一些字段创建 _apple 的记录。例如,我们可以从销售订单中创建发票,当创建发票时,发票的某些字段会自动生成,与销售订单中的记录相同。

我所做的是:

我的服务模式

class _service(models.Model):
_name = 'se.service'
_rec_name = "service_name"

name = fields.Char(
    'Reference', copy=False, readonly=True, default=lambda x: _('New'))
service_name = fields.Char("Service Name", required=True)
service_department = fields.Many2one('hr.department', "Department Name", required=True, help="Department Name of employee")
service_description = fields.Text("Description", required=True)
service_remarks = fields.Text("Remarks")
service_methodology = fields.Html(string="Methodology")
service_id = fields.One2many('se.objective', 'service_id', string="Objectives", required=True)

@api.model
def create(self, valuees):
    if valuees.get('name', _('New')) == _('New'):
        valuees['name'] = self.env['ir.sequence'].next_by_code('se.service') or _('New')
    return super(_service, self).create(valuees)

def _create_apple(self):
    inv_obj = self.env['se.apple']
    self.ensure_one()
    se = _service
    invoice = inv_obj.create({
        'apple_name': se.service_name,
        'apple_description': se.service_description,
        'apple_remarks': se.service_remarks
    })
    return invoice


def create_apple(self):
    self._create_apple()

我的 _apple 模型

class _apple(models.Model):
    _name = 'se.apple'

    apple_name = fields.Char("Apple Name")
    apple_description = fields.Text("Remarks Apple")
    apple_remarks = fields.Text("Remarks Apple")

我的 se.service 表单:

<header>
    <button name="create_apple" string="Create Apple" type="object" class="btn-primary"/>
</header>

如果我这样做: 1. 我在 se.service 中创建一个表单。 2. 我保存表格。 3. 我点击 create_apple 按钮。

我希望: 1.se.apple自动创建一条记录 2. Record会自动生成apple_name, apple_description & apple_remarks,因为我填写了se.service。

最佳答案

您自己有当前的服务记录,可以直接使用。 试试这个更新的方法。

   def _create_apple(self):
        inv_obj = self.env['se.apple']
        self.ensure_one()
        invoice = inv_obj.create({
            'apple_name': self.service_name,
            'apple_description': self.service_description,
            'apple_remarks': self.service_remarks
        })
        return invoice

关于python - 在以一种形式创建记录时自动创建另一个模型的记录 - Odoo 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44883858/

相关文章:

python - 无法使用关闭的游标

javascript - Odoo 表单中的表单小部件按钮

python - 我如何确保 Graphviz 可执行文件在我系统的路径上?

python - 计算 nd 数组中相同子数组的最快方法?

Odoo 12 : Changes are not visible when updating existing module

python - @api.depends 依赖于非存储字段不起作用

javascript - Odoo - 如何翻译 javascript 文件中的字符串

python - 如何打印出列表中以特定字母开头的元素

python - 如果在 flask 上选中了复选框,如何获取

javascript - Odoo 搜索多个名称使用 OR 运算符