跳至內容
選單
此問題已被標幟
2 回覆
7214 瀏覽次數

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

頭像
捨棄
最佳答案

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?
 

頭像
捨棄
作者

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

最佳答案

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.

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
4
9月 24
21341
0
11月 16
3557
1
12月 16
5091
4
12月 24
30876
1
4月 20
12826