コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
31267 ビュー

....and why should it matter?

TypeError: 'int' object has no attribute '__getitem__'

In fields.py, line 1197, in fnct_read value = value[field] or False

def _fnct_read(self, obj, cr, uid, ids, field_name, args, context=None):
    res = {}
    for record in obj.browse(cr, SUPERUSER_ID, ids, context=context):
        value = record
        for field in self.arg:
            if isinstance(value, list):
                value = value[0]
            value = value[field] or False
            if not value:
                break
        res[record.id] = value

So it wants the record.id and seems to be getting an int value. It's throwing an error even though it gets what it wants! Why wasn't this passed in the expected type? And why isn't there a case for the expected value to be int in the 1st place?

This is for a custom addon model which simply defines some columns.

アバター
破棄

which line is 1197?

著作者

line 1197, in fnct_read value = value[field] or False

最善の回答

Apparently, you have a related field incorrectly defined. The first parameter of fields.related must be the relational field used to reach the target model.

If this is not the case, post your field definition.

アバター
破棄
著作者

That was the trick! I commented my relational fields and now no error. My related field is such - 'status':fields.related('id', 'state', type='char', relation='dbe.application', string='Application Status') and I copied it from the source of stock_inventory_line to get it right. Yet I still messed up! How?

著作者

Found the problem. The referenced model also had a related field pointing back to this model and that one was set to type='many2one'. I changed it to char and no problem. Thanks!

著作者

I don't get this error calling the form anymore but now I get it while saving. Hmmmm....

Hello Mike, Have you found any solution regarding this issue? If yes please can you post the solution as i am facing same problem. Regards,

関連投稿 返信 ビュー 活動
1
10月 21
3653
1
10月 18
15238
0
1月 17
8084
1
10月 15
4295
1
3月 15
6852