如何在odoo 12中更改many2one值字段名称?

时间:2019-08-09 02:25:49

标签: python odoo odoo-12

嗨,当我在odoo 12中使用many2one函数时,它们之间(类)之间存在many2one关系,为什么我要获取表名和id(它们会自动生成,就像odoo ORM一样)?另一个odoo例子不是吗?如何更改此值?

这是我的代码,下面是我的模型:

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

from odoo import models, fields, api

class SalesorderSalesorder(models.Model):
    _name = 'salesorder.salesorder'

    no_faktur = fields.Char(String='No Faktur', required=True)
    kd_sales = fields.Many2one('res.users', string='Kode Sales')
    details = fields.One2many('salesorderdetails','no_faktur','List Item')


    class SalesOrderDetails(models.Model):
        _name = 'salesorderdetails'

        no_faktur = fields.Many2one('salesorder.salesorder')
        kd_produk = fields.Many2one('ms_produk.ms_produk','Kode Product',required=True)

,这是它的样子: enter image description here

并且我的数据库中有这些列:

enter image description here

我想显示kd_produk而不是表名和ID,我该如何更改?

2 个答案:

答案 0 :(得分:5)

默认情况下,name_search功能使用_rec_name中定义的值(默认为“名称”),但是您的模型没有字段name。因此,只需添加您的模型:

  

_rec_name =“您的field_you_want_to_show_on_name_search”

另一种方法是修改功能name_get

答案 1 :(得分:1)

在您的_rec_name模型中将kd_produk添加为ms_produk.ms_produk字段,

例如:

   class MsProduk(models.Model):
      _name = 'ms_produk.ms_produk'
      _rec_name = 'kd_produk'