Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
39280 Lượt xem

Hello,

I am new to OpenERP development and I am trying to learn how to assign functions to fields so I can retrieve values based on my needs, but after following the manual or taking a look at the code from another modules I can't seem to get it right.

I tried a really simple function to retrieve the current time into a field. Here is the code to my function

def get_text(self, cr, uid, ids, fields, arg, context):
    #records = self.browse(cr, uid, ids)
    #sale = 'Some Text'
    dd = datetime.now()
    return dd

And this is how I call the get_text function

'varText': fields.function(get_text, obj='sim.student', method=True, store=False, type='string', string='Text')

Whatever I try in my get_text function I always get an error like the following:

AttributeError: 'datetime.datetime' object has no attribute 'get'

If I comment the line starting with dd and uncomment the line starting with sale the error would be

AttributeError: 'str' object has no attribute 'get'

If anyone can give me a tip on what I am doing wrong I will really appreciate it!

Thanks!

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hello,

  • In you field singature the obj is not requied as it is not a relation type field.
  • type='string' will not work. You should use type='char'
  • but as you try to get a datetime fields the correct type should be datetime.
  • The return of get_textshould be a dict with keys the ids of the record and values the related values

You should have a look at the hr_attendance/hr_attendance.py of addons file

'last_sign': fields.function(_last_sign, type='datetime', string='Last Sign') is a simple sample

Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks so much, after hours of tests your help solve my problem. I always have to return an array of ids for functions being called by fields? Thanks again! =)

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 2 24
2829
2
thg 3 15
4860
1
thg 3 15
5397
4
thg 5 24
7181
0
thg 2 20
32