Hi, another question about inheritance.
I have a model that inherits from res.partner. This means that my model will have it's own fields plus the parent ones, comprising the fields added from some custom modules that modify the res.partner (or not?). If I look at my model table in the database I can see all the fields (the ones from the base model and the ones added by custom modules, so it seems I have inherited them all, seems).
The problem is that when in a View I try to reference one field that is not in the base model since it has been added by a custom module that modifies the base model (i.e. adds fields to that table) I got an error saying the field doesn't exist (but actually the column is present in the database table for my model, so it should be there)! There is something I do not understand. Shall I inherit from the model in the custom module that modifies res.partner? How, since the model name is always res.partner?
Let's see the code of the custom module that modifies res.partner
class res_partner(osv.osv):
_inherit = "res.partner"
_columns = {
'partner_latitude': fields.float('Geo Latitude', digits=(16, 5)),
'partner_longitude': fields.float('Geo Longitude', digits=(16, 5)),
'date_localization': fields.date('Geo Localization Date'),
}
In the database table for my model I can see a column for each of these fields, but if in my view I try to add one of those, e.g. partner_longitude, I got an error saying the field does not exists. Why? I miss something but I cannot figure out what.
Thanks.
PS: here it is the code for the class:
class genial_2015(osv.osv):
"""Db test genial_2015 """
_name = 'genial.2015'
_inherit = 'res.partner'
_columns = {
'cod_cat': fields.char ( 'Categoria', size=2, required = True),
'titolo': fields.char ('Titolo', size = 31),
'name': fields.char ('Azienda', size = 31, required = True, select = 2),
'street': fields.char ('Indirizzo', size = 31, required = True, select = 1),
'street2': fields.char ('Indirizzo2', size = 31),
'zip': fields.char ('CAP', size = 5, required = True, select = 1),
'city': fields.char('Località', size = 22, required = True, select = 1),
'provin': fields.char('Provincia', size = 2, required = True, select = 1),
'phone': fields.char ('Telefono', size = 15, select = 1),
'tipocli': fields.char('Tipo Cliente', size = 1, rquired = True, select = 1),
'statocli': fields.char('Stato Cliente', size = 1, required = True, select = 1),
'annull': fields.boolean ('Annullato', select = 1),
}
"""Assegna i valori di default ai campi"""
_defaults = {
'annull' : 0, 'statocli' : 'A', 'tipocli' : 'C', 'cod_cat' : 'OD',
}
Here the part of the view (that is mainly a copy of res.partner) in which I insert my custom field:
<xpath expr="//field[@name='website']" position="after">
<field name="titolo" placeholder="SPETTABILE STUDIO DENTISTICO" />
</xpath>
If I try to insert one of the (new) inherited field <field name="partner_longitude" placeholder="0.00" />, I get an error.
Thanks.