如何在 default_get 函数中获取父值?在 Odoo 9
How to get parent values in default_get function? In Odoo 9
我想创建一个新的寄存器,但我需要将父字段的值作为子字段的默认值。
我读到您可以通过上下文从 XML 发送 父值 并且每当打开新表单时,将执行该对象的 "default_get" .
我的问题是:
- 如何将父值传递给子值?
- 如何在 default_get 方法中访问这些值?
我试过这个:
在 XML 视图中:
<field name="my_child_field" context="{'variable1': parent}"/>
在 .py 文件中:
@api.model
def default_get(self, vals):
context = dict(self.env.context)
variable1 = context.get('variable1', False)
print ' variable1'
将 False 打印为 variable1 值。
假设你有以下星座:
class MyParent(models.Model):
_name = "my.parent"
child_ids = fields.One2many(
comodel_name="my.child", inverse_name="parent_id")
my_default_for_child = fields.Char()
class MyChild(models.Model):
_name = "my.child"
parent_id = fields.Many2one(comodel_name="my.parent")
my_field_for_default = fields.Char()
当然还有视图定义。只需将默认值放在上下文中,无需使用或扩展 default_get()
:
<record id="my_parent_form_view" model="my.parent">
<field name="name">my.parent.form.view</field>
<field name="model">my.parent</field>
<field name="arch" type="xml">
<form>
<field name="my_default_for_child" />
<field name="child_ids"
context="{'default_my_field_for_default': my_default_for_child}">
<tree editable="bottom">
<field name="parent_id" invisible="1" />
<field name="my_field_for_default" />
</tree>
</field>
</form>
</field>
</record>
我想创建一个新的寄存器,但我需要将父字段的值作为子字段的默认值。
我读到您可以通过上下文从 XML 发送 父值 并且每当打开新表单时,将执行该对象的 "default_get" .
我的问题是:
- 如何将父值传递给子值?
- 如何在 default_get 方法中访问这些值?
我试过这个:
在 XML 视图中:
<field name="my_child_field" context="{'variable1': parent}"/>
在 .py 文件中:
@api.model
def default_get(self, vals):
context = dict(self.env.context)
variable1 = context.get('variable1', False)
print ' variable1'
将 False 打印为 variable1 值。
假设你有以下星座:
class MyParent(models.Model):
_name = "my.parent"
child_ids = fields.One2many(
comodel_name="my.child", inverse_name="parent_id")
my_default_for_child = fields.Char()
class MyChild(models.Model):
_name = "my.child"
parent_id = fields.Many2one(comodel_name="my.parent")
my_field_for_default = fields.Char()
当然还有视图定义。只需将默认值放在上下文中,无需使用或扩展 default_get()
:
<record id="my_parent_form_view" model="my.parent">
<field name="name">my.parent.form.view</field>
<field name="model">my.parent</field>
<field name="arch" type="xml">
<form>
<field name="my_default_for_child" />
<field name="child_ids"
context="{'default_my_field_for_default': my_default_for_child}">
<tree editable="bottom">
<field name="parent_id" invisible="1" />
<field name="my_field_for_default" />
</tree>
</field>
</form>
</field>
</record>