当我尝试在自定义字段“mode_reglement”中选择要开票(全部/百分比/等...)后尝试在发票中转换订单时遇到问题
我在我的开发环境中没有问题,但在生产中:跟踪:
> Odoo 服务器错误回溯(最近一次调用最后一次):文件 > “/var/www/odoo/openerp/http.py”,第 530 行,在句柄异常返回中 > super(JsonRequest, self)._handle_exception(exception) 文件 > “/var/www/odoo/openerp/http.py”,第 567 行,在调度结果中 = > self._call_function(**self.params) 文件 > “/var/www/odoo/openerp/http.py”,第 303 行,在 _call_function 返回 > checked_call(self.db, *args, **kwargs) 文件 > “/var/www/odoo/openerp/service/model.py”,第 113 行,在包装返回 > f(dbname, *args, **kwargs) 文件“/var/www/odoo/openerp/http.py”,行 > 300,在checked_call 返回self.endpoint(*a, **kw) 文件 > “/var/www/odoo/openerp/http.py”,第 796 行,调用返回 > self.method(*args, **kw) 文件“/var/www/odoo/openerp/http.py”,行 > 396, 在 response_wrap 响应 = f(*args, **kw) 文件 > “/var/www/odoo/openerp/addons/web/controllers/main.py”,第 953 行,在 > call_button action = self._call_kw(model, method, args, {}) 文件 > “/var/www/odoo/openerp/addons/web/controllers/main.py”,第 941 行,在 > _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) 文件 > “/var/www/odoo/openerp/api.py”,第 241 行,在包装器返回中 > old_api(self, *args, **kwargs) 文件 > "/var/www/odoo/openerp/addons/sale/wizard/sale_make_invoice_advance.py", > 第 175 行,在 create_invoices res = sale_obj.manual_invoice(cr, uid, > sale_ids,上下文)文件“/var/www/odoo/openerp/api.py”,第 241 行,在 > 包装器返回 old_api(self, *args, **kwargs) 文件 > “/var/www/odoo/openerp/addons/sale/sale.py”,第 455 行,在 > manual_invoice self.signal_workflow(cr, uid, ids, 'manual_invoice') > 文件“/var/www/odoo/openerp/api.py”,第 241 行,在包装返回 > old_api(self, *args, **kwargs) 文件 "/var/www/odoo/openerp/models.py", > 第 3527 行,在 signal_workflow 结果[res_id] = > workflow.trg_validate(uid, self._name, res_id, signal, cr) 文件 > “/var/www/odoo/openerp/workflow/_init__.py”,第 85 行,在 trg_validate 中 > 返回 WorkflowService.new(cr, uid, res_type, res_id).validate(signal) > 文件“/var/www/odoo/openerp/workflow/service.py”,第 91 行,验证中 > res2 = wi.validate(信号) 文件 > “/var/www/odoo/openerp/workflow/instance.py”,第 75 行,有效 > wi.process(信号=信号,force_running=force_running,堆栈=堆栈) > 文件“/var/www/odoo/openerp/workflow/workitem.py”,第 120 行,在 > 进程正常 = self._split_test(activity['split_mode'],信号,堆栈) > 文件“/var/www/odoo/openerp/workflow/workitem.py”,第 248 行,在 > _split_test self._join_test(t0, t1, stack) 文件“/var/www/odoo/openerp/workflow/workitem.py”,第 257 行,在 _join_test > WorkflowItem.create(self.session, self.record, 活动, inst_id, > 堆栈=堆栈)文件“/var/www/odoo/openerp/workflow/workitem.py”,行 > 95, 在创建 workflow_item.process(stack=stack) 文件 > “/var/www/odoo/openerp/workflow/workitem.py”,第 116 行,如果在处理中 > 不是 self._execute(活动,堆栈):文件 > “/var/www/odoo/openerp/workflow/workitem.py”,第 187 行,在 _execute 中 > id_new = self.wkf_expr_execute(活动) 文件 > “/var/www/odoo/openerp/workflow/workitem.py”,第 313 行,在 > wkf_expr_execute return self.wkf_expr_eval_expr(activity['action']) > 文件“/var/www/odoo/openerp/workflow/workitem.py”,第 291 行,在 > wkf_expr_eval_expr 结果 = eval(line, env, nocopy=True) 文件 > “/var/www/odoo/openerp/tools/safe_eval.py”,第 314 行,在 safe_eval 中 > 返回 eval(c, globals_dict, locals_dict) 文件“”,第 1 行,在 > 文件“/var/www/odoo/openerp/api.py”,第 239 行,在包装返回 > new_api(self, *args, **kwargs) 文件 "/var/www/odoo/openerp/api.py", > 第 546 行,在 new_api 结果 = 方法(self._model,cr,uid,self.ids, > *args, **kwargs) 文件“/var/www/odoo/openerp/addons/sale_stock/sale_stock.py”,第 143 行,在 > action_invoice_create res = > super(sale_order,self).action_invoice_create(cr, uid, ids, > grouped=grouped, states=states, date_invoice = date_invoice, > context=context) 文件“/var/www/odoo/openerp/api.py”,第 241 行,在 > 包装器返回 old_api(self, *args, **kwargs) 文件 > “/var/www/odoo/openerp/addons/sale/sale.py”,第 559 行,在 > action_invoice_create res = self._make_invoice(cr, uid, order, il, > context=context) 文件“/var/www/odoo/openerp/api.py”,第 241 行,在 > 包装器返回 old_api(self, *args, **kwargs) 文件 > “/var/www/odoo/openerp/addons/sale/sale.py”,第 432 行,在 > _make_invoice inv_id = inv_obj.create(cr, uid, inv, context=context) File "/var/www/odoo/openerp/api.py", line 241, in wrapper return > old_api(self, *args, **kwargs) 文件 > “/var/www/odoo/openerp/addons/mail/mail_thread.py”,第 377 行,在 > 创建 thread_id = super(mail_thread, self).create(cr, uid, values, > context=context) 文件“/var/www/odoo/openerp/api.py”,第 241 行,在 > 包装器返回 old_api(self, *args, **kwargs) 文件 > “/var/www/odoo/openerp/api.py”,第 336 行,在 old_api 结果中 = > 方法(recs,*args,**kwargs)文件“/var/www/odoo/openerp/models.py”, > 第 4043 行,在创建记录 = self.browse(self._create(old_vals)) 文件中 > “/var/www/odoo/openerp/api.py”,第 239 行,在包装器返回中 > new_api(self, *args, **kwargs) 文件 "/var/www/odoo/openerp/api.py", > 第 462 行,在 new_api 结果 = 方法(self._model,cr,uid,*args, > **kwargs) 文件“/var/www/odoo/openerp/models.py”,第 4181 行,在 _create tuple([u2 for u in updates if len(u) > 2]) 文件“/var/www/ odoo/openerp/sql_db.py",第 158 行,在包装器中返回 f(self, > *args, **kwargs) 文件“/var/www/odoo/openerp/sql_db.py”,第 234 行,执行 res = self._obj.execute(query, params) ValueError:“ERREUR: > une valeur NULL viole la contrainte NOT NULL de la Colonne \xab > mode_reglement \xbb " 同时评估 u'action_invoice_create() '
当我想在手动发票中做贷方时会出现类似的问题(而 mode_reglement 字段不为空且不为空):
操作无法完成,可能是由于以下原因: - 删除:您可能正在尝试删除一条记录,而其他记录仍在引用它 - 创建/更新:未正确设置必填字段 [参考对象:mode_reglement - mode.reglement]
我的代码:
类mode_reglement(osv.osv): _name = 'cap.mode_reglement' _columns = { 'name' : fields.char('Nom',required=True), } 类 account_invoice(osv.osv): _inherit = 'account.invoice' _columns = { 'mode_reglement':fields.many2one('cap.mode_reglement','Mode de reglement',auto_join=True,required=True), }