与create_date的Odoo树视图

问题描述 投票:0回答:10

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

odoo
10个回答
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>

0
投票

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

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

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

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

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

希望它对你有用!!

如果您有任何疑问,请告诉我。


1
投票

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

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

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>

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>

0
投票

将create_date插入树视图中

首先在.py文件中创建一个具有相同名称['create_date']的字段

'create_date':fields.datetime('创建日期')

然后将它放在树视图中。它会工作。


0
投票

在特定树视图中编写代码

<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,然后在特定树视图中打印日期和时间。


0
投票

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


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

© www.soinside.com 2019 - 2024. All rights reserved.