TEL:400-8793-956
当前位置:程序、服务器

如何覆盖创建方法

提问者: 近期获赞: 浏览人数: 发布时间:2020-12-30 13:12:46

 问:创造:

 
-Create方法用于创建具有给定记录值的新记录。
 
-Create方法返回以给定值创建的新记录。
 
句法:
 
create(cr, uid, values, context=None)
例如:这里是7.0版的方法替代:-
 
def create(self, cr, uid, vals, context=context):
      if not vals:
           vals = {}
      if vals:
            vals = {'name': 'Shreyash Patel', 'age': 22}
      super(res_partner, self).create(cr, uid, vals, context=context)
对于api版本8.0:
 
@api.model
def create(self):
      if not vals:
           vals = {}
      if vals:
            vals = {'name': 'Shreyash Patel', 'age': 22}
      super(ResPartner, self).create(cr, uid, vals, context=context)
 
 
答:在覆盖创建/写入方法中,您应该小心!
让我们举个例子,例如
 
def create(self,cr,uid,vals,context):
      res = super(class_name,self).create(cr,uid,vals)
      #用您的逻辑做任何事#return
       res
 
因此,在覆盖orm方法,您应该首先调用超类create方法并应用逻辑,然后再返回该res变量
 
 
答:@ api.model
 
def create(self,vals):
 
   #在这里做点事
 
    返回super(class_ name,self).create(vals)
示例:如果要覆盖销售对象的创建方法,请在文件中执行类似代码的操作
 
@ api.model
 
def create(self,vals):
 
 # 做点什么 
 
 记录=超级(SaleOrder,自身)。创建(值)
 
 #做点什么,如果你想做,否则返回 
 
 返回记录
 
 
答:def create(self,cr,uid,vals,context = None):-> Method返回超级方法
 
vals ['allday'] = False
eventid = super(模型名称,自我).create(cr,uid,vals,context = context)
Meetingobj = self.browse(cr,uid,eventid,context = context)
您的代码在这里..................
 
 
返回eventid
def create(self,cr,uid,vals,context = None):-> Method返回超级方法vals ['all_day'] = False您的代码在这里...... ..... return super(modelname,self).create(cr,uid,vals,context = context)
 
如果要省略基本的create方法,而需要创建自己的方法mean,请使用以下代码。此方法不返回Super创建方法。
 
def create(self,cr,uid,vals,context = None):vals ['all_day'] = False您的代码在这里........ res = osv .osv.write(self,cr,uid,ids,values,context = context)返回res
上一篇: 如何在Android中制作一个简单的设置页面?
下一篇: 如果我的应用程序处于非活动状态,则Ajax调用会开始失败;否则它们在WiFi上就可以正常工作