Odoo 11.0 如何让 res.partner 关于模块教程可用?

Odoo 11.0 How let res.partner about module tutorial being usable?

我对 odoo 很陌生,从使用 odoo 11.0 构建模块开始。

一切正常,直到教程点 Inheritance 让我创建一个扩展 res.parter...

的新 Partener.py 文件

我跟着教程重读了很多遍,都是一样的。 为什么我得到错误:

psycopg2.ProgrammingError: column res_users.notification_type does not exist

LINE 1: ... "share","res_users"."partner_id" as "partner_id","res_users...

这是partner.py

# -*- coding: utf-8 -*-
from odoo import fields, models


class Partner(models.Model):
    _inherit = 'res.partner'

    # Add a new column to the res.partner model, by default partners are not
    # instructors

    instructor = fields.Boolean("Instructor", default=False)

    session_ids = fields.Many2many('openacademy.session',
                                   string="Attended Sessions", readonly=True)

通过为 odoo 生成一个配置文件来解决,因为我开始的会话使用了上一个项目的数据库,所以他没有 table inside db.

-s Path/odoorc_nameConfig -s --dev=xml,pdb,qweb

并添加一个 dbfilter 以查看正确的数据库!

之后在教程中提醒添加 depends 'sale' inside manifest!

'depends': ['base',
            'sale',
                ],

现在您可以继续使用 Odoo 11.0 教程,因为他们没有说您需要依赖 'sale' 来继承 class res.partner!

我遇到了同样的问题:"column res_partner.instructor does not exist"

我可以通过添加来解决这个错误: 上面代码models/partner.py末尾的Partner()。

    from odoo import models, fields, api

    class Partner(models.Model):
        _inherit = 'res.partner'
        instructor = fields.Boolean("Instructor", default=False)

        session_ids = fields.Many2many('openacademy.session', 
        string="Attended Sessions", readonly=True)

    Partner()

另一种方式是通过SQL添加字段。

    sudo -u postgres psql
    \c yourdatabase
    ALTER TABLE res_partner ADD COLUMN instructor boolean default False;

重新启动并准备就绪。

我通过在重新启动服务器后立即升级自定义模块解决了这个问题。(步骤:1 - 注释导入合作伙伴说明,2- 启动服务器,3- 转到应用程序和 select 你的自定义应用程序, 4- 取消注释 import partner 并启动服务器 5- 转到您的应用并直接升级而不刷新页面 )

当您向 res_company、res_partner、res_users 表中添加任何新字段时,应该是这种情况。 有关详细信息,请参阅此 link: https://www.odoo.com/forum/help-1/question/hi-everyone-here-i-need-the-solution-in-this-error-programmingerror-column-res-partner-instructor-does-not-exist-i-was-trying-to-inherit-res-partner-in-my-custom-module-129222