それで、私はこのトピックを見つけました:姓、名、ミドルネームを分離する(Python)、そしてOpenERPのニーズにコードを適応させようとしました。
私は現在これを持っています:
class get_the_name(object):
def __init__(self, fullname):
self.full = fullname
s = self.full.split()
try:
self.first = " ".join(s[:2]) if len(s[0]) == 1 else s[0]
s = s[len(self.first.split()):]
self.middle = " ".join(s[:2]) if len(s[0]) == 1 else s[0]
s = s[len(self.middle.split()):]
self.last = " ".join(s[:2]) if len(s[0]) == 1 else s[0]
finally:
pass
class class_A(osv.osv):
_name = 'classA.classA'
_rec_name = 'name_of'
_columns = {
'name_of':fields.char('Name:', size = 10),
'description_':fields.char('Description:', size = 10),
'first_last':fields.function(get_the_name("Just testing this").first, method = True, string = "Split Name", type = "char", size = 50),
}
class_A()
これは私にエラーメッセージを与えていますが:
AttributeError: 'str' オブジェクトに属性 'func_name' がありません
たとえ話があったとしても、私はこのようにしたくありません。関数の代わりに:
'first_last':fields.function(get_the_name("Just testing this").first, method = True, string = "Split Name", type = "char", size = 50),
私はそれが欲しい:
'first_last':fields.function(get_the_name(name_of).first, method = True, string = "Split Name", type = "char", size = 50),
どうすればこれを達成できますか?