如何正确更改 odoo 12 视图显示?

Posted

技术标签:

【中文标题】如何正确更改 odoo 12 视图显示?【英文标题】:How to change odoo 12 view display properly? 【发布时间】:2019-11-10 21:52:09 【问题描述】:

嗨,如何更改 odoo 12 view.xml 以添加更多列,或在模块中添加一些内容?我试图使用这样的命令从头开始创建 odoo 12 模块

& "c:\Program Files (x86)\Odoo 12.0\python\python.exe" "C:\Program 文件 (x86)\Odoo 12.0\server\odoo-bin" 脚手架 ms_produk "C:\Program Files (x86)\Odoo 12.0\server\odoo\addons"

然后我的基础项目生成,然后我尝试在模型文件夹中添加名为“produk.py”的模型,如下所示:

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class ProdukProduk(models.Model):
    _name = 'ms_produk.ms_produk'

    kd_produk = fields.Char(String='Kode Produk', required=True)
    nm_produk = fields.Char(String='Nama Produk', required=True)

然后在同一个文件夹中编辑名为 init.py 的文件并添加一个导入,如下所示:

# -*- coding: utf-8 -*-

from . import models
from . import produk

然后我为我的模块添加一个视图,我转到视图文件夹并添加一个名为 master_produk_view.xml 的文件,然后我添加一些看起来像这样的代码:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data>

        <record id="masterproduk_menu_action" model="ir.actions.act_window">
            <field name="name">Master Produk</field>
            <field name="res_model">ms_produk.ms_produk</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="help" type="html">
                <p class="oe_view_nocontent_create">Create Product
                </p>
            </field>
        </record>

        <menuitem id="masterproduk_menu" name="MasterProduk"/>
        <menuitem id="Masterproduk_new_product_menu" 
                parent="masterproduk_menu" 
                name="New Produk"
                action="masterproduk_menu_action"/>
    </data>
</odoo>

繁荣,我的模块完成了 CRUD 操作,但是当我查看视图时,它没有显示我所有的数据库列,只显示 ID 列,我认为它应该显示 kd_produk 和 nm_produk 列,怎么办我改这个?

我试图将视图 xml 代码修改为如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data>

        <record id="masterproduk_menu_action" model="ir.actions.act_window">
            <field name="name">Master Produk</field>
            <field name="res_model">ms_produk.ms_produk</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="arch" type="xml">
                <tree>
                    <field name="kd_produk"/>
                    <field name="nm_produk"/>
                </tree>
            </field>
            <field name="help" type="html">
                <p class="oe_view_nocontent_create">Create Product
                </p>
            </field>
        </record>

        <menuitem id="masterproduk_menu" name="MasterProduk"/>
        <menuitem id="Masterproduk_new_product_menu" 
                parent="masterproduk_menu" 
                name="New Produk"
                action="masterproduk_menu_action"/>
    </data>
</odoo>

什么也没发生,它仍然只显示 ID 列,这让我抓狂,我已经重新启动了我的 odoo 服务器,在应用程序选项中升级模块,我在这里错过了什么?

【问题讨论】:

【参考方案1】:

您可以尝试在模型中添加表单视图

  <record id="id" model="ir.ui.view">
       <field name="name">name</field>
       <field name="model">ms_produk.ms_produk</field>
       <field name="arch" type="xml">
           <form string="form string">
             define fields you want in your view
            </form>
        </field>
   </record>

你也可以添加树视图

<record id="id" model="ir.ui.view">
       <field name="name">name</field>
       <field name="model">ms_produk.ms_produk</field>
       <field name="arch" type="xml">
           <tree string="Tree string">
              fields in tree view
           </tree>
       </field>
   </record>

并将其加载到行动中。 你可以参考这个link。

【讨论】:

你是对的!我需要添加 ir.ui.view 模型!这就是我错过的......谢谢男人 对不起,我需要问一点,在我添加 ir.ui.view 之后为什么我不能点击行并转到详细信息? 在 ir.actions.act_window 中定义,需要相应的加载树和表单 好的,谢谢@thayif kabir 先生,它现在可以工作了,我认为这是缓存的东西哈哈

以上是关于如何正确更改 odoo 12 视图显示?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Odoo 12 的树视图中的操作菜单中添加额外的操作?

如何在多个网站 Odoo 之一中显示我的模块?

Odoo 9 如何编辑聊天机会注释视图

Odoo 10:更改树视图中的默认搜索

odoo form视图设置多列group

隐藏创建和导出所有按钮,但在 Odoo13 树视图中显示导入按钮