尝试使用 rpc.query 将数据从 javascript 发送到 python POS odoo
Trying to send data from javascript to python POS odoo using rpc.query
我正在尝试将列表中的数据发送到它们的字段,以便我可以将它们检索到同一模块/项目中的另一个屏幕。
我要发送的列表:
var vals = {
'token_number':Token,
'partner_id':customer_name,
'queue_line_ids':queue_lines,
}
其中Token是custom_button点击生成的随机数,customer_name是获取的客户id通过“this.pos.get_order().cid”和queuelines 是产品数组及其从订单中获得的信息。
我写的rpc.query
参考了odoo13/addon中的point_of_sale/:
return rpc.query({
model: 'pos.queue',
method: 'create',
args: [vals],
}).then(function () {
console.log("Success")
}).catch(function (reason){
var error = reason.message;
console.log(error);
});
我模块的 model.py 中的 pos.queue
:
class POSOrderQueue(models.Model):
_name = 'pos.queue'
token_number = fields.Integer(string="Token Number", store=True)
partner_id = fields.Char(store=True)
pos_order_id = fields.Char(store=True)
order_progress = fields.Selection([('in_queue', 'In Queue'),
('in_progress', 'In Progress'),
('done', 'Done')], string="Order progress", default='inqueue', store=True)
no_items = fields.Integer(string='No of Items', store=True)
queue_line_ids = fields.One2many('pos.queue.line', 'queue_id')
def create(self):
val = {
"token_number": self.token_number,
"partner_id": self.partner_id,
"queue_line_ids": self.queue_line_ids,
}
self.env['pos.queue'].create(val)
是的,所以我正在寻找解决方案,将我的数据库中的订单数据与其他数据一起传递,因为从这个问题通过以来我已经走了很长一段路,所以我觉得有必要分享我的发现和修改,使通过 token number
Customer id
Estimated time
& status
。
以下是我到目前为止所做的修改
名单:
val_list = {
'token_number':Token,
'partner_id':customer_name,
'pos_order_id':torder.name,
'est_time':e_time,
'order_progress':torder.order_progress,
};
其中 torder
是 this.pos.get_order()
。
我的 rpc 查询变得像(感谢我的主管)
return rpc.query({
model: 'pos.queue',
method: 'create_token',
args:[val_list],
}).then(function () {
console.log("Success")
}).catch(function (reason){
var error = reason.message;
console.log(error);
});
模型变成了这样:
class POSOrderQueue(models.Model):
_name = 'pos.queue'
token_number = fields.Integer(string="Token Number", store=True)
partner_id = fields.Char(store=True)
pos_order_id = fields.Char(store=True)
est_time = fields.Text(string="estimated time", store=True)
order_progress = fields.Selection([('in_queue', 'In Queue'),
('in_progress', 'In Progress'), ('cancel', 'Cancel'),
('done', 'Done')], string="Order progress", default='in_queue', store=True)
no_items = fields.Integer(string='No of Items', store=True)
queue_line_ids = fields.One2many('pos.queue.line', 'queue_id')
@api.model
def create_token(self, val_list):
res = super(POSOrderQueue, self).create(val_list)
print("yes working")
return res
class POSOrderQueueLine(models.Model):
_name = 'pos.queue.line'
queue_id = fields.Many2one('pos.queue')
product_name = fields.Char(store=True)
product_quant = fields.Integer()
product_price = fields.Float()
def create(self, vals):
res = super(POSOrderQueueLine, self).create(vals)
return res
问题已部分解决,但我无法实现我的最后一个 objective,即通过 rpc 查询将 orderline
数据传递到我的模型 pos.queue.line
,以便可以在我对 odoo13 的自定义视图是这样的
screenshot of my view table
我正在尝试将列表中的数据发送到它们的字段,以便我可以将它们检索到同一模块/项目中的另一个屏幕。
我要发送的列表:
var vals = {
'token_number':Token,
'partner_id':customer_name,
'queue_line_ids':queue_lines,
}
其中Token是custom_button点击生成的随机数,customer_name是获取的客户id通过“this.pos.get_order().cid”和queuelines 是产品数组及其从订单中获得的信息。
我写的rpc.query
参考了odoo13/addon中的point_of_sale/:
return rpc.query({
model: 'pos.queue',
method: 'create',
args: [vals],
}).then(function () {
console.log("Success")
}).catch(function (reason){
var error = reason.message;
console.log(error);
});
我模块的 model.py 中的 pos.queue
:
class POSOrderQueue(models.Model):
_name = 'pos.queue'
token_number = fields.Integer(string="Token Number", store=True)
partner_id = fields.Char(store=True)
pos_order_id = fields.Char(store=True)
order_progress = fields.Selection([('in_queue', 'In Queue'),
('in_progress', 'In Progress'),
('done', 'Done')], string="Order progress", default='inqueue', store=True)
no_items = fields.Integer(string='No of Items', store=True)
queue_line_ids = fields.One2many('pos.queue.line', 'queue_id')
def create(self):
val = {
"token_number": self.token_number,
"partner_id": self.partner_id,
"queue_line_ids": self.queue_line_ids,
}
self.env['pos.queue'].create(val)
是的,所以我正在寻找解决方案,将我的数据库中的订单数据与其他数据一起传递,因为从这个问题通过以来我已经走了很长一段路,所以我觉得有必要分享我的发现和修改,使通过 token number
Customer id
Estimated time
& status
。
以下是我到目前为止所做的修改
名单:
val_list = {
'token_number':Token,
'partner_id':customer_name,
'pos_order_id':torder.name,
'est_time':e_time,
'order_progress':torder.order_progress,
};
其中 torder
是 this.pos.get_order()
。
我的 rpc 查询变得像(感谢我的主管)
return rpc.query({
model: 'pos.queue',
method: 'create_token',
args:[val_list],
}).then(function () {
console.log("Success")
}).catch(function (reason){
var error = reason.message;
console.log(error);
});
模型变成了这样:
class POSOrderQueue(models.Model):
_name = 'pos.queue'
token_number = fields.Integer(string="Token Number", store=True)
partner_id = fields.Char(store=True)
pos_order_id = fields.Char(store=True)
est_time = fields.Text(string="estimated time", store=True)
order_progress = fields.Selection([('in_queue', 'In Queue'),
('in_progress', 'In Progress'), ('cancel', 'Cancel'),
('done', 'Done')], string="Order progress", default='in_queue', store=True)
no_items = fields.Integer(string='No of Items', store=True)
queue_line_ids = fields.One2many('pos.queue.line', 'queue_id')
@api.model
def create_token(self, val_list):
res = super(POSOrderQueue, self).create(val_list)
print("yes working")
return res
class POSOrderQueueLine(models.Model):
_name = 'pos.queue.line'
queue_id = fields.Many2one('pos.queue')
product_name = fields.Char(store=True)
product_quant = fields.Integer()
product_price = fields.Float()
def create(self, vals):
res = super(POSOrderQueueLine, self).create(vals)
return res
问题已部分解决,但我无法实现我的最后一个 objective,即通过 rpc 查询将 orderline
数据传递到我的模型 pos.queue.line
,以便可以在我对 odoo13 的自定义视图是这样的
screenshot of my view table