代码之家  ›  专栏  ›  技术社区  ›  forvas

如何按字段排序多个字段(树状视图)?

  •  1
  • forvas  · 技术社区  · 8 年前

    我刚刚意识到,用户不能订购 Many2many 字段像 One2many 领域

    标准的 One2many 字段,可以看到comodel及其字段的树状视图。如果单击 One2many ,它的树状视图会根据您单击的字段自动排序(如果该字段存储在数据库中),您会看到一个小箭头图标。

    但在标准 很多 字段,如果您单击任何列的名称(该字段是否存储在数据库中并不重要),它什么都不做,您无法对其树状视图排序。

    实际上,XML树属性 default_order 如果树是在一个内部打开的,似乎不起作用 很多 .

    唯一仍然有效的是 _order 如果我将其添加到comodel的Python定义中。

    例如:

    我有一个 很多 字段指向 account.treasury.forecast.invoice .我不会告诉字段打开任何特定视图,因此默认情况下会加载以下树视图:

    <record model="ir.ui.view" id="account_treasury_forecast_invoice_tree_view">
        <field name="name">account.treasury.forecast.invoice.tree</field>
        <field name="model">account.treasury.forecast.invoice</field>
        <field name="arch" type="xml">
            <tree string="Invoices" widget="many2many">
                <field name="date_due" />
                <field name="invoice_id" />
                <field name="partner_id"/>
                <field name="journal_id" />
                <field name="base_amount" sum="Total Base" />
                <field name="tax_amount" sum="Total Taxes" />
                <field name="total_amount" sum="Total" />
                <field name="residual_amount" sum="Total Residual" />
                <field name="state" />
            </tree>
        </field>
    </record>
    

    我意识到 默认订单 如果在中打开以下视图,则不执行任何操作 很多 领域

    <record model="ir.ui.view" id="account_treasury_forecast_invoice_tree_view">
        <field name="name">account.treasury.forecast.invoice.tree</field>
        <field name="model">account.treasury.forecast.invoice</field>
        <field name="arch" type="xml">
            <tree string="Invoices" widget="many2many" default_order="date_due">
                <field name="date_due" />
                <field name="invoice_id" />
                <field name="partner_id"/>
                <field name="journal_id" />
                <field name="base_amount" sum="Total Base" />
                <field name="tax_amount" sum="Total Taxes" />
                <field name="total_amount" sum="Total" />
                <field name="residual_amount" sum="Total Residual" />
                <field name="state" />
            </tree>
        </field>
    </record>
    

    至少 _命令 作品:

    class AccountTreasuryForecastInvoice(models.Model):
        _name = 'account.treasury.forecast.invoice'
        _description = 'Treasury Forecast Invoice'
        _order = 'date_due'
    

    但问题是,该界面不允许用户按其任何字段排序,我希望允许他们有时按字段排序 date_due 有时 invoice_id .我怎么办?你是否也经历过同样的问题 很多 领域?

    0 回复  |  直到 8 年前