当前位置: 首页 > 面试题库 >

odoo-2个字段的many2one字段组合的显示名称

轩辕华辉
2023-03-14
问题内容

在我的模块中,我有以下many2one字段: 'xx_insurance_type': fields.many2one('xx.insurance.type', string='Insurance')

xx.insurance.type以下位置:

class InsuranceType(osv.Model):
    _name='xx.insurance.type'

    _columns = {
        'name' : fields.char(size=128, string = 'Name'),
        'sale_ids': fields.one2many('sale.order', 'xx_insurance_type', string = 'Sale orders'),
        'insurance_percentage' : fields.float('Insurance cost in %')
    }

我知道many2one场取 名字 字段的显示名称,但我想有它使用的组合name,并insurance_percentage在形式name + " - " + insurance_percentage + "%"

我读过最好覆盖该get_name方法,所以我尝试了以下方法:

def get_name(self,cr, uid, ids, context=None):
    if context is None:
        context = {}
    if isinstance(ids, (int, long)):
        ids = [ids]

    res = []
    for record in self.browse(cr, uid, ids, context=context):
         name = record.name
         percentage = record.insurance_percentage
         res.append(record.id, name + " - " + percentage + "%")
    return res

并将其放在ÌnsuranceType`类中。既然什么也没发生:我是否必须将其放置在包含该字段的主类中?如果是这样,是否还有其他方法可以执行此操作,因为这也可能会更改其他many2one字段的显示方式?


问题答案:

如果您不想更改many2one与模型相关的其余部分的显示名称,则xx.insurance.type可以在XML视图中向many2one要修改其显示名称的上下文中添加一个上下文:

<field name="xx_insurance_type" context="{'special_display_name': True}"/>

然后,在您的name_get函数中:

def name_get(self, cr, uid, ids, context=None):
    if context is None:
        context = {}
    if isinstance(ids, (int, long)):
        ids = [ids]
    res = []
    if context.get('special_display_name', False):
        for record in self.browse(cr, uid, ids, context=context):
            name = record.name
            percentage = record.insurance_percentage
            res.append(record.id, name + " - " + percentage + "%")
    else:
        # Do a for and set here the standard display name, for example if the standard display name were name, you should do the next for
        for record in self.browse(cr, uid, ids, context=context):
            res.append(record.id, record.name)
    return res


 类似资料:
  • 需要帮助的一个案件流与分组由我希望能够分组由2个不同的字段,并有其他大小数字段的总和,根据不同的分组。以下是我的实体: 让我们假设我有以下列表作为输入: 下面有一个解决方案的开头,但我在添加第二个聚合来总结余额的时候阻止了:

  • 问题内容: 我所做的: 我有一个模块 然后我有另一个课 我得到的是: 该作品不错,但字段为空。如果您编辑个人资料,则可以使用来向字段添加条目,但是我需要自动填写。 我的期望: 我希望打开个人资料时,每个设置为的记录都将在字段中可见。当我创建记录并将值设置为可以说时,该记录必须在字段中的配置文件中可见。如何实现呢? 问题答案: user_rel_ids =字段.many2many(comodel_n

  • 我试图从关系中的第三个表中显示一个字段,在检查了这里的帖子和文档后,我仍然卡住了。我有3个模型都以某种方式相关。我在这里找到了类似的帖子,但我仍然没有得到它的工作。如果我在文档的某个地方错过了这个,我很抱歉,但是我已经读了很多,尝试了很多。我现在猜得太多了,所以我需要帮助。 tutorsession自动从教师表中获取行,但不从findall上的模型设置的用户表中获取行。 我想显示用户表中的用户名。

  • 问题: 怎样在模板中个别显示表单字段? 解决: 你可以使用’render()’方法在你的模板中显示部分的表单字段。 假设你想创建一个名字/姓氏表单。很简单,只有两个字段,不需要验证,只是为了测试目的。 from web import form simple_form = form.Form( form.Textbox('name', description='Name'), for

  • 编辑:这是对任何感兴趣的人的解决方案。我将Events模型中的Unicode方法更改为以下内容 (django V1.3,python 2.7) 标题令人困惑,我会尽我所能把它弄清楚。我有三个模型,分支、事件和更新: 当通过管理界面添加更新时,我希望相关的_事件字段显示事件模型的标题、分支和更新字段,以便于用户选择正确的相关_事件(而不仅仅是一长串标题)。 添加更新时,我希望如何在下拉或水平相关的