跳至内容
菜单
此问题已终结
2 回复
2206 查看

I have create and write method in project.project model , the problem is the create function always give me user error in any situation and does not work well unless i comment out the write function . 

@api.model

defcreate(self, vals):

fdi = vals.get('soucre_fund_FDI',0)

ddi = vals.get('soucre_fund_DDI',0)

gov = vals.get('soucre_fund_GOV',0)
​total = fdi + ddi + gov

​iftotal != 100:

​raise UserError(_("The total of Source of fund (FDI %), Source of fund (DDI ​%), and Source of fund (GOV %) must equal 100."))
​self.clear_caches()

​returnsuper(Project, self).create(vals)


defwrite(self, vals):

fdi = vals.get('soucre_fund_FDI', self.soucre_fund_FDI)

ddi = vals.get('soucre_fund_DDI', self.soucre_fund_DDI)

gov = vals.get('soucre_fund_GOV', self.soucre_fund_GOV)
​total = fdi + ddi + goviftotal != 100:raise UserError(_("The total of Source of fund ​(FDI %), Source of fund (DDI %), and Source of fund (GOV %) must equal 100."))
​self.clear_caches()

​returnsuper(Project, self).write(vals)

形象
丢弃
编写者 最佳答案

i solved it by add a if statement to the write function.

def write(self, vals):

​if 'soucre_fund_FDI' in vals or 'soucre_fund_DDI' in vals or 'soucre_fund_GOV' in ​vals:

​fdi = vals.get('soucre_fund_FDI', self.soucre_fund_FDI)

​ddi = vals.get('soucre_fund_DDI', self.soucre_fund_DDI)

​gov = vals.get('soucre_fund_GOV', self.soucre_fund_GOV)
​total = fdi + ddi + gov

​if total != 100:

​raise UserError(_("The total of Source of fund (FDI %), Source of fund (DDI %), and ​Source of fund (GOV %) ​must equal 100."))

​self.clear_caches()

​return super(Project, self).write(vals)

形象
丢弃
最佳答案

Dear Mazinsali,


I think you need give space before function definition like this def create and def write

形象
丢弃
相关帖文 回复 查看 活动
1
6月 20
35233
1
11月 17
3227
1
6月 16
4665
2
8月 15
5381
1
8月 23
2971