Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
16 Відповіді
9873 Переглядів

I am trying to edit definition of inherited field in odoo 8 but no changes at all. For example i want to change  product description

models.py

from openerp.osv import osv, fields, expression
import openerp.addons.decimal_precision as dp

class product_template(osv.osv):
    _name = "product.template"    _inherit =  "product.template"
    _columns = {        'description': fields.text('Description', translate=True,help="A precise description of the   Product, used only for internal information purposes. Extended!!!"),    }


I can't figure out what is the problem, why my change has no effect ??

Аватар
Відмінити
Найкраща відповідь

Hi Ayman,

I tested your code in Odoo 8 and its perfectly working. There is no issue with providing _name

So in your case, please double check the following things:

- Your *.py file is included in __init__.py

- You restarted the server n upgraded the correct module

- Your module depends on product module

- Test with a new DB

Аватар
Відмінити
Найкраща відповідь

Hi Ayman, as you are already inheriting the product.template object then,again there is no need of defining the _name for your inherited model, so you need to remove this : _name = "product.template"

Аватар
Відмінити
Автор

i know but providing it shouldn't cause any problem,correct ??

Yes its not going to throw any error but, its not the proper way of inheriting an object.

by the way,which odoo version are you using,and what are you trying to do with description field.

Автор

thanks for the hint about inheritance ^_^

i am using odoo 8 trying to modify help massage of description field of the product as a test for further modification on other fields

Найкраща відповідь

you add file name in to __init__.py

and remove _name

restart server and update module and reload page.

then it's work i am 100% sure. 


Thank you.


Аватар
Відмінити
Найкраща відповідь

Try this..

class product_template(osv.osv):
    _inherit =  "product.template"   

    _columns = { 'description': fields.text('Description', translate=True,help="A precise description of the   Product, used                                 only for internal information purposes. Extended!!!"),    }

Note: No need to write the name of the model (_name = "product.template") while inheriting a model .. !

Hope this helps !!!

Аватар
Відмінити

If its working for you just vote for it, so that it will be useful for others

Автор

no change yet

pls upgrade the module if not done.

Автор

sure i upgraded it restart server then upgrade module

i think it isn't about providing _name or not

Автор

also i tested the same scenario , i has made two modules one is inheriting from the other one

then every thing was correct but the problem when inheriting form "product.template"

Найкраща відповідь

If you create a new field in your inheritance class, does it appear in the fields list of the model product.template ?

What if you try to use this syntax?

description = fields.Text(string="Description", translate=True,help="A precise description of the Product, used only for internal information purposes. Extended!!!")

Аватар
Відмінити
Найкраща відповідь

In Odoo/OpenERP we can inherit or use existing modules object/class/model and views. We can also inherit single field of existing modules. The question is why we need such inheritance.

The purpose of inheritance or why we need inheritance is given below:

  • To change attributes of some fields which exists on existing/custom model (e.g. making fields readonly,invisible)

  • To add/modify/delete old or new fields in existing/custom model (e.g. Product, Sales, HR, Fleet Management, Attendance modules model etc)

  • We can also add buttons in already existing/custom model (form and tree) view by using inheritance

Get detailed description about inheritance: http://learnopenerp.blogspot.com/2018/01/inheritance-in-models-and-views.html

Аватар
Відмінити
Найкраща відповідь

remove _name and put only _inherit . _inherit should contain the table name

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
2
січ. 20
14848
1
січ. 19
5198
5
черв. 18
10602
0
вер. 17
2307
0
лют. 17
2820