草庐IT

python - Odoo 10 - 在标准树和日历 View 中显示来自 One2many 的字段

coder 2024-07-01 原文

感谢此站点上聪明人的帮助,我现在在我的模块中有一个很好的 One2many 字段,它允许我添加多个订单行,就像在销售模块中一样。它工作得很好,但现在为了方便起见,我希望能够在我的树和日历 View 中看到 One2many 字段中的某个字段。但是,当我尝试使用下面描述的方法显示该字段时,我得到的只是记录数。特别是,我希望它显示添加到订单行的所有产品。相关代码如下:

模型.py

# -*- coding: utf-8 -*-

from odoo import models, fields, api
from odoo.addons import decimal_precision as dp

class mymodule_base(models.Model):
    _name = 'mymodule.mymodule'
    _description = 'My Module'

    operations = fields.One2many('mymodule.line', 'order_id', 'Operation Lines')

class mymodule_line(models.Model):
    _name = 'mymodule.line'
    _description = 'Order Line'

    order_id = fields.Many2one('mymodule.mymodule')
    product_id = fields.Many2one('product.template', string='Repair / Part', required=False)

views.xml

<record id="mymodule.calendar" model="ir.ui.view">
    <field name="name">MyModule Calendar</field>
    <field name="model">mymodule.mymodule</field>
    <field name="arch" type="xml">
        <calendar string="Repairs" date_start="date_received" date_stop="date_due" color="state">
            <field name="operations">
                <field name="product_id"/>
            </field>
        </calendar>
    </field>
</record>

<record model="ir.ui.view" id="mymodule.list">
    <field name="name">MyModule list</field>
    <field name="model">mymodule.mymodule</field>
    <field name="arch" type="xml">
        <tree>
            <field name="operations">
                <field name="product_id"/>
            </field>
        </tree>
    </field>
</record>

这是我的 ListView 使用上述代码的图像:List View

如果有任何帮助,我将不胜感激。如果我需要进一步阐明我正在尝试做的事情,请告诉我。

编辑 我已经尝试过 Juan 的建议,但在我看来,我仍然只看到数字,而不是产品名称。这是我所做的。我不确定我是否按照说明正确操作。

在mymodule.line下

    product_name = fields.Char(related='product_id.name', store=True)

在 ListView 下

            <field name="operations" widget="one2many_list" mode="tree">
                <field name="product_id" invisible="True"/>
                <field name="product_name"/>
            </field>

我是否在操作定义下包含这两行似乎并不重要。

                <field name="product_id" invisible="True"/>
                <field name="product_name"/>

我仍然得到相同的结果。

编辑 2 我尝试在 mymodule.mymodule 下添加相关字段:

product_name = fields.Char(related='operations.product_id.name')

然后,我在我的 ListView 中定义这个字段,如下所示:

<field name="product_name"/>

这给了我几乎我想要的,除了它只显示一个产品的名称,而不是所有的。

最佳答案

您是否尝试为您的 widget="one2many_list" 字段添加正确的 operations?就像发票 LINK 的行一样。希望对您有所帮助。

编辑:

使用 One2many 相关领域文档说:

mode

for One2many, display mode (view type) to use for the field's linked records. One of tree, form, kanban or graph. The default is tree (a list display)

首先,在小部件定义旁边添加mode 属性,并设置您要查找的模式。 其次,要获取产品名称,您应该在“mymodule.line”中创建一个related 字段,如下所示:

product_name = fields.Char(related='product_id.name', store=True)

并修改 View ,设置product_id invisible="true" ,然后添加<field name="product_name"/>

警告:不要回避 View 中的product_id定义,因为相关字段无法正常工作

相关领域HERE的信息。

编辑 2:

对于你的 ListView 试试这个:

<record model="ir.ui.view" id="mymodule.list">
<field name="name">MyModule list</field>
<field name="model">mymodule.mymodule</field>
<field name="arch" type="xml">
        <field name="operations" widget="one2many_list">
            <tree>
                <field name="product_id" invisible="True"/>
                <field name="product_name" />
            </tree>
        </field>
</field>

你的日历 View 应该遵循相同的结构。

关于python - Odoo 10 - 在标准树和日历 View 中显示来自 One2many 的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46607204/

有关python - Odoo 10 - 在标准树和日历 View 中显示来自 One2many 的字段的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  3. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  4. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  5. ruby-on-rails - 如何在 Rails View 上显示错误消息? - 2

    我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c

  6. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  7. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  8. ruby-on-rails - 复数 for fields_for has_many 关联未显示在 View 中 - 2

    目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi

  9. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  10. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

随机推荐