跳至内容
菜单
此问题已终结

Hi, I am trying to add a new combobox to re.partner (added field for customers). It is intended to provide an informative payment method selection and it should appear right after property_payment_term in the customer acountability tab.


This is my __init__.py:

from . import invoice_payment_method

this is my __openerp__.py:

{
'name': 'Payment Method Selection',
'description': 'Provides a new field to select payment method as per customer',
'author': 'E.M.',
'depends': ['base', 'account' ],
'data': ['invoice_payment_method.xml', ],
}

This is my invoice_payment_method.py:

# -*- coding: utf-8 -*-
from openerp import models, fields, api, exceptions

class invoice_payment_method(models.Model):

_inherit = "res.partner"

payment_method = fields.Selection(selection=[('bank_transfer', 'Transferencia Bancaria'),
('check', 'Cheque'),
('confirming', 'Confirming'),
string='Método de pago')


And this is invoice_payment_method.xml:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>

<record model="ir.ui.view" id="payment_method">
<field name="name">payment_method</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.view_partner_property_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='property_payment_term']" position="after">
<field name="payment_method"/>
</xpath>
</field>
</record>

</data>
</openerp>

Could anyone help me to identify what I am missing or how to further troubleshoot?

形象
丢弃
最佳答案

You need to close the selection brackets in your field definition like:

payment_method = fields.Selection(selection=[('bank_transfer', 'Transferencia Bancaria'),
('check', 'Cheque'),
('confirming', 'Confirming')],#here
string='Método de pago')



形象
丢弃
最佳答案

you should add _name to your class :


class invoice_payment_method(models.Model):
    _name = "res.partner"
    _inherit = "res.partner"


otherwise you are making a new class named  invoice_payment_method instead of editing res.partner. Also as a tradition, it is better to name your class "partner" instead of " invoice_payment_method"

Cheers,

Pouya
形象
丢弃

when you define _inherit and not _name is the same as declare _name and _inherit with the same value

I didn't know it, thanks

编写者

Actually, "Odoo Develpment Essentials" book states that while extending a class, no _name should be assigned. As per class name, if I understood it correctly, it can be the same as the extended one as they are just internal classes, my doubt is if there is any standard.

相关帖文 回复 查看 活动
0
7月 24
1276
1
7月 15
6245
1
2月 23
7584
3
5月 19
10276
3
3月 17
13824