首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >树的默认值

树的默认值
EN

Stack Overflow用户
提问于 2018-04-20 20:33:26
回答 2查看 366关注 0票数 0

我正在使用Odoo v8。目前我创建了一个弹出窗口(do_action函数),里面有一棵树。

这就是视图。

代码语言:javascript
复制
    <record id="view_mcu_record_popup_form" model="ir.ui.view">
        <field name="name">mcu.record.popup.form</field>
        <field name="model">mcu.record</field>
        <field name="context">{'default_parent_mcu_data_id': 479}</field>
        <field name="arch" type="xml">
            <form>
                <sheet>
                    <group>
                        <field name="name" readonly="1" />
                    </group>
                    <field name="mcu_data_ids" domain="[('parent_mcu_data_id', '=', 479)]" context="[('default_parent_mcu_data_id', '=', 479)]" widget="one2many_list">
                        <tree editable="bottom" create="true" delete="true">
                            <field name="name" />
                            <field name="val_alphabet" />
                            <field name="val_float" />
                            <field name="val_yesno" />
                            <field name="ref_range" />
                            <field name="unit" />
                            <field name="highlight" />
                            <field name="note" />
                        </tree>
                    </field>
                </sheet>
                <footer>
                    <button name="save_data" string="Save" type="object" class="oe_highlight" />
                    or
                    <button string="Cancel" class="oe_link" special="cancel" />
                </footer>
            </form>
        </field>
    </record>

我想为字段指定默认值,如您所见,我将

代码语言:javascript
复制
<field name="context">{'default_parent_mcu_data_id': 479}</field>

<field name="mcu_data_ids" domain="[('parent_mcu_data_id', '=', 479)]" context="[('default_parent_mcu_data_id', '=', 479)]" widget="one2many_list">

这两行什么也不做。新行parent_mcu_data_id保持为空。

如何从视图给它们一个默认值(请不要从模型中)。

在这里,我把我给do_action函数的变量

代码语言:javascript
复制
        var new_tree_action = {
            type: "ir.actions.act_window",
            name: act_title,
            res_model: "mcu.record",
            res_id: this.field_manager.datarecord.id,
            view_mode: "form",
            view_type: "form",
            views: [[false, "form"]],
            target: "new",
            context: {
                "default_patient_mcu_id": this.field_manager.datarecord.id,
                "default_parent_mcu_data_id": 479,
                "context_id": context_id,
                "context_parent_id": context_parent_id,
                "variety": context_variety,
                "ref_range": context_ref_range,
                "note": context_note,
                "highlight": context_highlight,
                "unit": context_unit,
                "res_id": context_res_id,
            },
        }

我稍后使用ir_model_data.call("get_object_reference", ["medical_checkup", view_id]).then(function(results) {填充视图id [[false, "form"]]

为了给出更多的信息,我决定给出一个模型的提示

代码语言:javascript
复制
class McuRecordInherit(models.Model):
    _auto = True
    _inherit = "mcu.record"
    _description ="Medical Checkup Record"

    mcu_data_ids = fields.One2many("mcu.data", "patient_mcu_id", string="Medical Checkup Data")
EN

回答 2

Stack Overflow用户

发布于 2018-04-20 20:44:59

如果在mcu.record模型中声明了parent_mcu_data_id字段,则@CZoellner的答案是正确的。但是,如果它位于关系字段mcu_data_ids所指向的模型中,请执行以下操作:

将字段parent_mcu_data_id添加到树视图中,否则domain和带有default_键的context将不起作用:

代码语言:javascript
复制
<field name="mcu_data_ids" domain="[('parent_mcu_data_id', '=', 479)]" context="[('default_parent_mcu_data_id', '=', 479)]" widget="one2many_list">
    <tree editable="bottom" create="true" delete="true">
        <field name="name" />
        <field name="val_alphabet" />
        <field name="val_float" />
        <field name="val_yesno" />
        <field name="ref_range" />
        <field name="unit" />
        <field name="highlight" />
        <field name="note" />
        <field name="parent_mcu_data_id" />
    </tree>
</field>

并删除您在上面编写的字段context (它是record标签的子级)。它在ir.ui.view中什么也不做。

票数 0
EN

Stack Overflow用户

发布于 2018-04-20 20:47:14

您必须更新不在视图中的操作的上下文。在呈现视图时,已经计算了默认值。

如果从另一个视图的按钮打开表单视图,请更新其上下文:

代码语言:javascript
复制
<button name="do_action" string="Action"
    context="{'default_field_another_model': 'default'}" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49941745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档