2016-12-14 7 views
0

odoo 8用のモジュールを開発しました。ここでは、8文字のコードの芸術を受け取った1つのフィールドを置いて、関数は文字でフィールドを完成させました。自己完結型のフィールドをOdoo v8の新しいapiで作成する

これはフィールドです:

<field name="Nif" data-inputmask="'mask': '99999999-a'"/> 

そして、これは、Pythonのコードです:あなたがプログラムを続行してみてください

@api.onchange('Nif') 
def letraDNI(self): 
    numero = self.Nif 
    intnumero = int(numero[:7]) 
    diccionario = {'0': "T", '1': "R", '2': "W", '3': "A", '4': "G", '5': "M", '6': "Y", '7': "F", '8': "P", '9': "D", '10': "X",'11': "B", '12': "N", '13': "J", '14': "Z", '15': "S", '16': "Q", '17': "V", '18': "H", '19': "L",'20': "C", '21': "K", '22': "E"} 
    resto = intnumero % 23 
    letra = diccionario.get(resto) 

しかし言う:

File "/opt/odoo/odoo-server/addons/admision/models.py", line 60, in letraDNI 
    self.Nif = str(numero + letra) 
TypeError: coercing to Unicode: need string or buffer, NoneType found 

任意のソリューション?

+0

フィールドレベルの属性data-inputmaskをフィールドに間違って追加する –

答えて

0

restoは数字ですが、diccionarioのキーは文字列なので、キーは見つからず、diccionario.get(resto)Noneを返します。次に、でUnicodeタイプを追加しようとすると例外が発生します。

試してみてください。

letra = diccionario.get(str(resto)) 

または整数である辞書のキーを変更します。

関連する問題