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

I have a method schedule_emails that gets called via a server action. In it I'm trying to create an instance of sale.order_email.scheduled_email however it's raising an exceptin saying

old_api() takes at least 3 arguments (2 given)

Looking at openerp/api.py it seems like there's a wrapper that expects self.__dict__ to have a _ids attribute for it to call the new v8 api which presumably would work. It's not clear to me what I've failed to do, to call create on the model. My model:

class sales_order_email_field(osv.Model):
    _name = 'sale.order'
    _inherit = 'sale.order'
    _columns = {
        'email_chain': fields.many2one(
            'sale.order_email.collection',
            'Email Chain',
            required=False
        ),
        'scheduling_done': fields.boolean()
    }

    def schedule_emails(self):
        model = self.pool.get('sale.order_email.scheduled_email')
        model.create({
            'order_id': self.id,
            'send_at': datetime.utcnow(),
            'subject': 'Auto Test',
            'html_body': "HI"
        })

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

I was immitating what was being done in the sales.order model with regards to creating new records, but grepping around I noticed the accounts/account_invoice.py uses the newer api.

I needed to change:

model = self.pool.get('sale.order_email.scheduled_email')

into:

model = self.env['sale.order_email.scheduled_email']

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 9 19
98
1
thg 7 17
4361
4
thg 8 16
8568
1
thg 5 16
5183
1
thg 3 16
5216