python - 如何正确更改 odoo 12 视图显示?
问题描述
嗨,如何更改 odoo 12 view.xml 以添加更多列,或在模块中添加一些内容?我尝试使用这样的命令从头开始创建 odoo 12 模块
& "c:\Program Files (x86)\Odoo 12.0\python\python.exe" "C:\Program Files (x86)\Odoo 12.0\server\odoo-bin" 脚手架 ms_produk "C:\Program Files (x86) \Odoo 12.0\服务器\odoo\插件"
然后生成了我的基础项目,然后我尝试在模型文件夹中添加名为“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 服务器,在应用程序选项中升级模块,我在这里错过了什么?
解决方案
您可以尝试在模型中添加表单视图
<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>
并将其付诸行动。你可以参考这个链接。
推荐阅读
- mysql - 创建查询以选择从最贵到最便宜的所有设备
- javascript - 滚动上的动画“幻灯片”
- typescript - 间接返回值时,打字稿类型“字符串”不可分配给类型
- swiftui - swiftui 状态变量计数丢失了它存储的内容
- python - windows上的python权限被拒绝
- python - 从网站上的图表中抓取数据,只有将鼠标悬停在图表上才能看到
- python - Python 的“setuptools”不包括自动生成的 SWIG Python 文件
- laravel - 如何仅保护我的控制器的特定路由?
- java - java中如何获取LinkedList的头节点?
- parsing - 在 `std::string::String` 中找不到 .next() 方法