Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
16 Răspunsuri
9867 Vizualizări

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 ??

Imagine profil
Abandonează
Cel mai bun răspuns

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

Imagine profil
Abandonează
Cel mai bun răspuns

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"

Imagine profil
Abandonează
Autor

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.

Autor

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

Cel mai bun răspuns

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.


Imagine profil
Abandonează
Cel mai bun răspuns

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 !!!

Imagine profil
Abandonează

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

Autor

no change yet

pls upgrade the module if not done.

Autor

sure i upgraded it restart server then upgrade module

i think it isn't about providing _name or not

Autor

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"

Cel mai bun răspuns

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!!!")

Imagine profil
Abandonează
Cel mai bun răspuns

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

Imagine profil
Abandonează
Cel mai bun răspuns

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

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
2
ian. 20
14837
1
ian. 19
5192
5
iun. 18
10594
0
sept. 17
2303
0
feb. 17
2816