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

How to change many2one value field name in odoo 12?

嗨,当我在 odoo 12 中使用 many2one 函数时,我在它们之间有 many2one 关系(class)为什么我得到一个 table 名称和 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)

这是它的样子:

我的数据库中有这些列:

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

默认 name_search 函数使用 _rec_name 中定义的值(默认为 "name"),但您的模型没有字段 name。所以只需添加您的模型:

_rec_name = "your_field_you_want_to_show_on_name_search"

另一种方法是修改函数name_get

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

例如:

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