Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Odoo获取wkf按钮功能中的相关订单id_Python_Python 2.7_Odoo_Openerp 8_Odoo 8 - Fatal编程技术网

Python 使用Odoo获取wkf按钮功能中的相关订单id

Python 使用Odoo获取wkf按钮功能中的相关订单id,python,python-2.7,odoo,openerp-8,odoo-8,Python,Python 2.7,Odoo,Openerp 8,Odoo 8,我有销售订单 class recieved_payments(osv.osv): _name = "sale.order.recpay" _description = "Recieved Payments" _columns = { 'name_type': fields.selection([('creditcard', 'Credit Card'),('banktransfer', 'Bank Transfer'),('ccbooking', 'CC

我有销售订单

class recieved_payments(osv.osv):
    _name = "sale.order.recpay"
    _description = "Recieved Payments"
    _columns = {
        'name_type': fields.selection([('creditcard', 'Credit Card'),('banktransfer', 'Bank Transfer'),('ccbooking', 'CC Booking'),('ccunbocked', 'CC Unbooked'),('cash', 'Cash'),('other', 'Other type')],
        'Type', required=True,),
        'reccieved_amount': fields.float('Amount', required=True,),
        'reccieved_notes': fields.char('Notes'),
        'datepay': fields.datetime('Date', select="1"),
        'payyment_id': fields.many2one('sale.order', 'Payments', ondelete='cascade', required=True, select="1"),
        'user_idpay': fields.many2one('res.users', 'Done by', required=True, select="1"),
}

    _defaults = {
        'user_idpay': lambda obj, cr, uid, context: uid,
        'datepay': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
}
sale.order xml中这些模型的树视图

和一个工作流按钮

<button name="signal_sale_fullpay_fnct" type="object"    states="prepaiiied,prepwaiting" class="oe_highlight" ] string="Full amount recieved"/>
一切正常,但有一个问题! 主要问题是浏览(从我创建这些记录的销售订单)字段“销售订单”作为默认值

!![这是销售订单中的弹出窗口,我需要它作为默认值填写订单确认字段()][1]

我已经试着像上面那样使用上下文,但那不起作用


有什么想法吗

我认为您将在paym.payment_id.id中获得销售订单id,因为您已将m2o字段引入模型。sale.order和sale.order.recpay之间的关系是:in sale.order“received_payment”:fields.one2many('sale.order.recpay','payment_id','String'),in sale.order.rec***payment_id':fields.manyOne('sale.order','String',ondelete='cascade',required=True,select=“1”),如果paym.payment\u id.id错误为-AttributeError:“sale.order”对象没有属性“\u id”,则应使用活动的\u id,它始终位于上下文中。如果当前的工作模型是sale order,并且您正在从那里打开弹出窗口,则可以在活动的\u id.上下文中获取销售订单id:{“payment\u id”:paym.active\u id.name,}如何使用活动id?
def signal_sale_fullpay_fnct(self, cr, uid, ids, context=None):
    if not ids: return []
    dummy, view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'bcs_bus_gmbh9', 'view_payments_bcs_form_dialog')
    sale_obj = self.pool.get('sale.order')
    paym = self.browse(cr, uid, ids[0], context=context)
    return {
        'name':_("Register Payment"),
        'view_mode': 'form',
        'view_id': view_id,
        'view_type': 'form',
        'res_model': 'sale.order.recpay',
        'type': 'ir.actions.act_window',
        'nodestroy': True,
        'target': 'new',
        'domain': '[]',
        'context': {
            'payyment_id': paym.name,
        }
    }