与create_date的Odoo树视图

时间:2015-05-06 12:04:26

标签: odoo

您知道如何在Odoo客户树视图中插入列create_date吗?它会让我看到在系统上创建的最新客户端。 谢谢, 爱德华

8 个答案:

答案 0 :(得分:5)

用于在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>

答案 1 :(得分:1)

按照此步骤

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用于根据您的要求对记录进行排序。

重新启动服务器并更新模块。

希望它会对你有用!!

如果您有任何疑问,请与我们联系。

答案 2 :(得分:1)

我建议不要更改模型上的_order属性,因为这会更改数据库中的顺序,这可能不是您要实现的目标。相反,添加default_order =&#34; create_date desc&#34;属性到列表视图的树元素。在拱门:

<tree position="attributes">
    <attribute name="default_order">create_date desc</attribute>
</tree>

答案 3 :(得分:0)

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>

答案 4 :(得分:0)

我建议您使用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>

答案 5 :(得分:0)

你可以直接在xml中声明。无需定义.py文件。因为create_date是一个odoo魔术场。所以,你可以直接在树视图中声明。

答案 6 :(得分:0)

<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 =创建合作伙伴的用户

答案 7 :(得分:0)

在Odoo / OpenERP中,我们可以继承或使用现有的模块对象/类/模型和视图。我们还可以继承现有模块的单个字段。问题是为什么我们需要这样的继承。

继承的目的或我们需要继承的原因如下:

  1. 更改现有/自定义上存在的某些字段的属性 模型(例如,使字段只读,不可见)
  2. 添加/修改/删除现有/自定义模型中的旧字段或新字段 (例如产品,销售,人力资源,车队管理,出勤模块模型 等)
  3. 我们还可以在现有/自定义模型中添加按钮(表单和 树)使用继承查看