你知道如何在Odoo客户树视图上插入列create_date
吗?它会让我看到在系统上创建的最新客户端。谢谢你,爱德华多
要在Odoo客户树视图上插入create_date列,请执行以下步骤: -
1: - 继承.py文件
from openerp import models, fields, api, _
class ResPartner(models.Model):
_inherit = 'res.partner'
create_date = fields.Datetime("Date")
2: - 扩展res.partner树视图。
<record id="view_inherit_res_partner_tree" model="ir.ui.view">
<field name="name">res.partner</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='function']" position="before">
<field name="create_date"/>
</xpath>
</field>
</record>
在Odoo / OpenERP中,我们可以继承或使用现有的模块对象/类/模型和视图。我们还可以继承现有模块的单个字段。问题是为什么我们需要这样的继承。
继承的目的或我们需要继承的原因如下:
请按照此步骤操作
1 /继承res_partner类。在.py文件中,添加此代码。[redefine _order attribute]
class res_partner(osv.Model):
_inherit = "res.partner"
_order = "create_date desc"
res_partner()
2 /在视图文件中,继承伙伴的树视图并添加create_date字段。
<record id="view_partner_tree_extended" model="ir.ui.view">
<field name="name">res.partner.extended</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='display_name']" position="before">
<field name="create_date"/>
</xpath>
</field>
</record>
注意:无需在python文件中添加create_date字段,因为它来自osv.model基类。 _order atttribute用于根据您的要求对记录进行排序。
重新启动服务器并更新模块。
希望它对你有用!!
如果您有任何疑问,请告诉我。
我建议不要更改模型上的_order属性,因为这会更改数据库中的顺序,这可能不是您要实现的目标。而是将default_order =“create_date desc”属性添加到列表视图的树元素中。在拱门:
<tree position="attributes">
<attribute name="default_order">create_date desc</attribute>
</tree>
As create_date is Automatic fields in Odoo, you can directly access it in the tree view.
Example:-
<record id="customer_list_view" model="ir.ui.view">
<field name="name">customer.tree</field>
<field name="model">bank.customer</field>
<field name="arch" type="xml">
<tree string="Customer View">
<field name="name"/>
<field name="contact"/>
<field name="create_date"/> // Directly access from database(no need to declare in model)
</tree>
</field>
</record>
我建议您使用xpath并继承客户的树视图。以下xml应该有效:
<record id="inherit_customer_tree_view" model="ir.ui.view">
<field name="name">res.partner.tree.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_tree" />
<field name="arch" type="xml">
<xpath expr="//field[@name='display_name']" position="before">
<field name="create_date" />
</xpath>
</field>
</record>
将create_date插入树视图中
首先在.py文件中创建一个具有相同名称['create_date']的字段
'create_date':fields.datetime('创建日期')
然后将它放在树视图中。它会工作。
在特定树视图中编写代码
<record id="my_tree_view_id" model="ir.ui.view">
<field name="name">my.mode.view.tree</field>
<field name="model">my.model</field>
<field name="mode">primary</field>
<field name="arch" type="xml">
<tree string="My model tree view">
<field name="name" />
<field name="product_count" />
<field name="write_date" />
</tree>
</field>
</record>
在字段标记中使用write_date,然后在特定树视图中打印日期和时间。
你可以直接在xml中声明。无需定义.py文件。因为create_date是一个odoo魔术场。所以,您可以直接在树视图中声明。
<data>
<xpath expr="//field[@name='display_name'][not(ancestor::field)]" position="after">
<field name="create_date"/>
</xpath>
<xpath expr="//field[@name='create_date'][not(ancestor::field)]" position="after">
<field name="create_uid"/>
</xpath>
</data>
使用合作伙伴树中的开发人员工具按钮将此代码放在视图中create_date = date create_uid =创建合作伙伴的用户