【问题标题】:Import file CSV on odoo 8 using method many2one使用方法many2one在odoo 8上导入文件CSV
【发布时间】:2017-05-18 03:32:54
【问题描述】:

我开始学习 odoo,但在尝试导入 CSV 文件时遇到了问题。问题是这样出现的:

Cannot execute name_search, no _rec_name defined on prov.model

我是这样创建代码的:

from openerp import models, fields, api

class Practice(models.Model):
    _name = 'practice.practice'
    _inherit = 'res.partner'

    prov = fields.Many2one(
        'prov.model',
        'name_prov',
        # string='Provinc',
    )

class Provinc(models.Model):
    _name = 'prov.model'

    name_prov = fields.Char(
        string='Provinc',
    )

我不知道我必须做什么,我试图编辑我的代码,但它仍然不起作用。

【问题讨论】:

    标签: python csv import odoo-8


    【解决方案1】:

    这是因为当您单击 many2one 下拉列表时,name_search 方法调用该方法在模型中搜索“名称”字段以在下拉列表中显示数据

    由于您没有“名称”字段并且也没有指定 _rec_name,因此 Odoo 无法识别您要在 many2one 下拉列表中显示的字段并给出错误。

    您需要在 _rec_name 中提及 name_prov 字段,以告诉 odoo 这是将在 many2one 下拉列表中显示的名称字段。

    进行此更改。

    class Provinc(models.Model):
        _name = 'prov.model'
        _rec_name ='name_prov'     #this tells odoo use this field for m2o field
    
        name_prov = fields.Char(string='Provinc')
    

    并且正确的 Many2one 字段定义 # 不需要像 One2many 那样指定 inverse_name

    prov = fields.Many2one('prov.model')

    【讨论】:

    • 现在我得到了新的错误,错误是 DataError: invalid input syntax for integer: ""
    • 哦,是的!您不需要在 Many2one 字段声明中指定任何 inverse_name #Added in answer check it。
    • 对不起,但它仍然是错误的。错误是:在第 2 行的字段“”中找不到名称“”的匹配记录
    • 提供您的完整追溯!!
    • 这就是我的全部追溯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多