首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改stock.picking模型中的默认表单视图?

如何更改stock.picking模型中的默认表单视图?
EN

Stack Overflow用户
提问于 2022-09-19 04:05:50
回答 2查看 70关注 0票数 0

这里我需要一些帮助,所以odoo在stock.picking模型中有一个默认的表单视图。其中表单用于外出、内部和传入类型的拾取。因此,我为这些类型创建了几个不同的视图,但是如果通过many2one链接打开表单,会导致默认的表单视图,那么如何更改默认的表单视图呢?我尝试过使用fields_view_get函数,但是它不能工作,因为它无法从stock.picking获得id。下面是我在fields_view_get模型中创建的stock.picking函数:

代码语言:javascript
复制
@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
    if view_type == 'form':
        if self.picking_type_id.code == "outgoing":
            view_id = self.env.ref('gg_warehouse.wh_os_outgoing_form').id
        if self.picking_type_id.code == "incoming":
            view_id = self.env.ref('gg_warehouse.wh_os_incoming_form').id
        if self.picking_type_id.code == "internal":
            view_id = self.env.ref('gg_warehouse.wh_os_transfer_form').id
    return super(StockPickingInherit2, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)

实际上,我已经设法使用上下文fields.Many2one从{'form_view_ref': 'my_module.new_custom_form_view'}打开了一个新表单,但是如果刷新页面,它将返回到默认的odoo视图。这就是为什么我想替换odoo的默认视图。

EN

回答 2

Stack Overflow用户

发布于 2022-09-19 08:49:56

当请求视图时,将使用优先级最低的视图。

客户端程序可以通过id或(模型,类型)请求视图。对于后者,将搜索正确类型和模型的所有视图,and the one with the lowest priority number will be returned (it is the “default view”)

可以使用优先级字段使自定义视图成为默认视图。

默认选股表单视图优先级设置为12,要使您的视图成为默认视图,请将优先级值设置为小于12的数字。

示例:

代码语言:javascript
复制
<record id="view_picking_form" model="ir.ui.view">
<field name="name">stock.picking.form</field>
<field name="model">stock.picking</field>
<field eval="11" name="priority"/>
<field name="arch" type="xml">

</field>
</record>

备注

fields_view_get函数中,self是一个空记录集,这意味着您不能使用字段值。

self.picking_type_id.code将被计算为False,所有条件都是False,Odoo不会设置view_id

票数 1
EN

Stack Overflow用户

发布于 2022-09-19 06:25:11

我的意思是,如果使用相同的ID,Odoo将替换旧的ID,并替换为新的id,例如:添加具有相同id形式的新记录:

view_picking_form

代码语言:javascript
复制
<record id="view_picking_form" model="ir.ui.view">
            <field name="name">stock.picking.form</field>
            <field name="model">stock.picking</field>
            <field eval="12" name="priority"/>
            <field name="arch" type="xml">

.......
</record>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73768392

复制
相关文章

相似问题

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