安装模块后正常字段没有更新吗?
Is it normal fields are not updated after installing modules?
我正在 OpenERP 7 上开发一个模块。
这是一个非常简单的代码:它在 python 文件中只有 1 个新字段(或列),在 xml 中只有一个 xpath。我知道它有效,因为有一次它已成功安装
当我尝试 install/update 我的模块与模块接口时,有时该字段是 added/updated 到 OpenERP,但有时不是。
我尝试 start/stop 并在安装我的模块之前和之后重新启动 Openerp,但我不知道它是否会产生影响。我在日志中没有错误或有用的东西。
所以字段不会 add/update 但 xml 每次都会更新...有没有人知道发生了什么事和解决方案?
python代码:
# -*- coding: utf-8 -*-
from openerp.osv import fields, osv
class StockPickingIn(osv.osv):
_name = "stock.picking.in"
_inherit = "stock.picking.in"
_columns = {
'adquat_ack_recep': fields.boolean('Accusé de réception'),
}
xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="view_picking_in_form_adquat" model="ir.ui.view">
<field name="name">stock.picking.in.form.adquat</field>
<field name="model">stock.picking.in</field>
<field name="inherit_id" ref="stock.view_picking_in_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='stock_journal_id']" position="after">
<field name="adquat_ack_recep" />
</xpath>
</field>
</record>
<record id="view_picking_in_tree_adquat" model="ir.ui.view">
<field name="name">stock.picking.in.tree.adquat</field>
<field name="model">stock.picking.in</field>
<field name="inherit_id" ref="stock.view_picking_in_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='state']" position="after">
<field name="adquat_ack_recep" />
</xpath>
</field>
</record>
</data>
</openerp>
我认为使用命令行 -u !
更新字段是有效的
但我的另一个问题没有解决:我在表单视图中没有空复选框
并且在表单视图中我无法选中此复选框:
我点击编辑,检查并保存:复选框变空!
我在数据库中看到该值保存为true或false,但是界面上没有显示
问题可能是由于两个实例 运行同时出现。确保你 运行 单个实例。您也可以通过命令行更新模块,这可能会解决您的问题
参考此 通过命令行更新模块。
您应该会看到以下错误
ValidateError
Error occurred while validating the field(s) arch: Invalid XML for View Architecture!
因为 adquat_ack_recep
定义在 stock.picking
中,您将其添加到 stock.picking.in
表单中。
您需要继承自 stock.picking.in
。
_inherit = "stock.picking.in"
编辑:
向模型 stock.picking
和 stock.picking.in
添加 adquat_ack_recep
字段(stock.picking.in
读取方法被覆盖以从 stock.picking
模型读取值)。看看fields not saving problem
我正在 OpenERP 7 上开发一个模块。
这是一个非常简单的代码:它在 python 文件中只有 1 个新字段(或列),在 xml 中只有一个 xpath。我知道它有效,因为有一次它已成功安装
当我尝试 install/update 我的模块与模块接口时,有时该字段是 added/updated 到 OpenERP,但有时不是。
我尝试 start/stop 并在安装我的模块之前和之后重新启动 Openerp,但我不知道它是否会产生影响。我在日志中没有错误或有用的东西。
所以字段不会 add/update 但 xml 每次都会更新...有没有人知道发生了什么事和解决方案?
python代码:
# -*- coding: utf-8 -*-
from openerp.osv import fields, osv
class StockPickingIn(osv.osv):
_name = "stock.picking.in"
_inherit = "stock.picking.in"
_columns = {
'adquat_ack_recep': fields.boolean('Accusé de réception'),
}
xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="view_picking_in_form_adquat" model="ir.ui.view">
<field name="name">stock.picking.in.form.adquat</field>
<field name="model">stock.picking.in</field>
<field name="inherit_id" ref="stock.view_picking_in_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='stock_journal_id']" position="after">
<field name="adquat_ack_recep" />
</xpath>
</field>
</record>
<record id="view_picking_in_tree_adquat" model="ir.ui.view">
<field name="name">stock.picking.in.tree.adquat</field>
<field name="model">stock.picking.in</field>
<field name="inherit_id" ref="stock.view_picking_in_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='state']" position="after">
<field name="adquat_ack_recep" />
</xpath>
</field>
</record>
</data>
</openerp>
我认为使用命令行 -u !
更新字段是有效的但我的另一个问题没有解决:我在表单视图中没有空复选框
并且在表单视图中我无法选中此复选框:
我在数据库中看到该值保存为true或false,但是界面上没有显示
问题可能是由于两个实例 运行同时出现。确保你 运行 单个实例。您也可以通过命令行更新模块,这可能会解决您的问题
参考此
您应该会看到以下错误
ValidateError
Error occurred while validating the field(s) arch: Invalid XML for View Architecture!
因为 adquat_ack_recep
定义在 stock.picking
中,您将其添加到 stock.picking.in
表单中。
您需要继承自 stock.picking.in
。
_inherit = "stock.picking.in"
编辑:
向模型 stock.picking
和 stock.picking.in
添加 adquat_ack_recep
字段(stock.picking.in
读取方法被覆盖以从 stock.picking
模型读取值)。看看fields not saving problem