This question has been flagged

Hello, I am trying find a way to not store a couple character fields.  This field is used for processing information, but I do not want it to be stored on the actual database.  Right now I have the store=False attribute set on the field definition, but it still stores the value on the table.  I tried using the dummy field, but all it does is pass in False to the method that processes the information.  Right now, I clear the data from the column in the table after it's processed, but I would like to not store a column for this field at all.  Thank you

Avatar
Discard
Best Answer

Attribute store in field doesn't designed that why (for osv.osv model). If your class inherit from osv.osv I think you can't do what you want to do. Have you consider using osv.osv_abstract?
 

Avatar
Discard
Author

I haven't heard of the osv.osv_abstract. What does that do?

it's AbstractModel (https://github.com/odoo/odoo/blob/9f214223ea1ebdb0b666ee41f14ea823453ec415/openerp/osv/osv.py#L32). Here 's inline documentation https://github.com/odoo/odoo/blob/9f214223ea1ebdb0b666ee41f14ea823453ec415/openerp/models.py#L5853-L5865

Best Answer

Hi Eric,

Just use the fields.function and make your character field not store into database.

for ex here I am going to make one 'note' field with type character and it will not store into database.

'note' : fields.function( _note_field, string="Note", type="char", size=128, store=False)

def _note_field(self, cr, uid, ids, context={})

    res = {}

    for id in ids:

    # your code for proceessed to get this field information

        res[id] = ' processed data'

    return res

By this way you will get your field with character type and it will not store into database. I hope it will help you.

Avatar
Discard