2013-04-26 1 views
1

Вот моя ошибка, когда я собираюсь создавать records.please совет, где пропавшая точка.?OpenERP создает и записывает методы сразу

File "/home/bellvantage/Documents/openerp-7.0/openerp-7/openerp/addons/bpl/bpl.py", line 394, in create 
    self.write(cr, uid, [id], {'name': name}, context) 
    File "/usr/lib/python2.7/dist-packages/psycopg2/extensions.py", line 129, in getquoted 
    pobjs = [adapt(o) for o in self._seq] 
ProgrammingError: can't adapt type 'builtin_function_or_method' 
2013-04-26 06:14:07,719 5739 INFO demo werkzeug: 127.0.0.1 - - [26/Apr/2013 06:14:07] "POST /web/dataset/call_kw HTTP/1.1" 200 - 

соответствующая строка в своем коде, как это

def create(self, cr, uid, values, context=None): 
    name = 'CheckRoll No : ' + str(values['checkroll_no']) + ' & Gang No : ' + str(values['gang_no']) 
    self.write(cr, uid, [id], {'name': name}, context) 
    return True   

ошибка приходит и показывает, что мой метод записи является incorrect.seems некоторого параметра отсутствующего мной. нужны ваши советы, чтобы реализовать модуль спасибо ..

EDITED

Теперь ошибка, как показано ниже

File "/home/bellvantage/Documents/openerp-7.0/openerp-7/openerp/addons/bpl/bpl.py", line 395, in create 
    res = super('bpl.work.offer',self).create(cr,uid,values,context=context) 
TypeError: must be type, not str 
2013-04-26 07:58:43,452 6947 INFO demo werkzeug: 127.0.0.1 - - [26/Apr/2013 07:58:43] "POST /web/dataset/call_kw HTTP/1.1" 200 - 

здесь показывает свои поля в классе модели

'name': fields.char('Name', size=50), 
'checkroll_no': fields.integer('Checkroll No'), 
'gang_no': fields.integer('Gang'), 

здесь показывает значения, когда я отлаживаю (в момент времени super.create()),

dict: {'selected_tea_workers_line_ids': [[5, False, False], [0, False, {'worker_emp_no': '1000', 'worker_id': 
1, 'tea_line_worker_id': False, 'is_selected': False}]], 'user_id': False, 'is_confirmed': False, 
'date_of_offer': '2013-04-26', 'bpl_division_id': 1, 'work_type': 'tea', 'checkroll_no': 10, 'name': 
'CheckRoll No : 10 & Gang No : 100', 'selected_rubber_workers_line_ids': [[5, False, False], [0, False, 
{'worker_emp_no': '1001', 'worker_id': 2, 'rubber_line_worker_id': False, 'is_selected': False}]], 
'work_update_id': False, 'field_no': 15, 'selected_sundry_workers_line_ids': [], 'payment_type': 
'normal_work', 'gang_no': 100, 'total_workers': 0, 'no_of_workers': 0, 'norm': 15, 
'selected_other_workers_line_ids': [], 'bpl_estate_id': 1, 'select_by': 'by_name'} 

Теперь его работы. благодаря Anoma

Последний Edited

def create(self, cr, uid, values, context=None): 
    name = 'CheckRoll No = ' + str(values['checkroll_no']) + ' & Gang No = ' + str(values['gang_no']) 
    values.update({'name': name}) 
    return super(bpl_work_offer,self).create(cr,uid,values,context=context) 

ответ

3

Фактически y ou делают неправильно. Вы пытаетесь записать запись, которая не создана. Также я не думаю, что вам нужно использовать запись в этом случае.

class bpl_abc(osv.osv) 
    _inherit = 'bpl.work.offer' 
    def create(self, cr, uid, values, context=None): 
     name = 'CheckRoll No : ' + str(values['checkroll_no']) + ' & Gang No : ' + str(values['gang_no']) 
     values.update({'name': name}) 
     res = super('bpl_abc',self).create(cr,uid,values,context=context) 
     return res 
bpl_abc() 

Пожалуйста, имейте в виду, что функция create в openerp всегда возвращает идентификатор только что созданной записи.

+0

спасибо AnomA.thatswhy мне нужен код и урок :-) –

+1

какая ошибка? проверьте значения в checkroll_no и gang_no в значениях. – OmaL

+0

Сортировка AnomA thanks.i пропустил класс модели и передал его как строку :-) –

-2

Может быть потому, что метод 'записи' является встроенный метод

EX:

with open("a.txt","r+") as f: 
    f.write("sometext") 

Не используйте self.write поскольку запись является встроенным методом на объекте «файл»

+0

похоже, проблема с [id] .need, чтобы получить идентификатор объекта self –

+1

, вы определили метод «write» и используете это здесь. Что я хочу, вам нужно переименовать метод «write» вашего –

+0

, спасибо Раджешу. yep.need, чтобы переопределить эти значения записи и обновления, когда моя функция create вызвала. Это мое требование. Как это сделать.? –

Смежные вопросы