20.odoo入门——杂记

上午:

需要在odoo后台的一个“是否被确认”的一个bool字段,但是如果要修改的话每次都要进入编辑页面再修改再保存就很麻烦了,能不能加一个按钮进行确认的动作呢?

百度上看了好多网站,并没有找到什么有用的资料,开发者文档里面似乎也没有很明显的线索


下午:

问题1:进行项目的合并——有一些发现不了的bug,总是利用删库再新建来解决

问题2:对xml的树形视图中添加一个按钮,通过点击按钮来改变一个bool字段的状态,

实现方法为,

在xml视图中添加一个button定义:

<button type="object" name="changeState" string="确认"/>

Name字段定义的值就是在这个model中的一个方法,在model中的方法代码如下:

@api.multi
def changeState(self):
    for item in self:
        item.confirmed = True

这样就可以实现到点击按钮改变该状态的效果。

问题3:

在一个模型中,重写write方法,要求在修改时,也修改另外2个model的一些记录的字段的值

代码实现如下:

# #---------------------------重写write方法,修改净值和现金转账,from lwl-------------------------------------#
@api.multi
def write(self, vals1):
    # 先对净值进行调整:当前净值减去每份分红额
    #vals1这个字典只有更新过的字段内容的!!!
    each = self.each #旧的分红值
    if vals1['each'] is not None:
        each = vals1['each']

    dividend_model= self.env['wens.investment.financing.dividend']
    dividend_records = dividend_model.search([('id', '=', self.id)])
    old_each_value = dividend_records['each']
    value_change_model = self.env['wens.investment.financing.value.change']
    value_change_records = value_change_model.search([('product_id', '=', int(self.product_id)),('dividend_id','=',int(self.id))])
    for item in value_change_records:
        item.value = item.value + old_each_value - each #更新
        item.remark = '分红,净值更新'
        item.product_id = self.product_id
        item.change = -each #lwl修改了负号


    # 添加每个人的现金转账记录
    cash_transfer_model = self.env['wens.investment.financing.cash.transfer']
    cash_transfer_records = cash_transfer_model.search(
        [('product_id', '=', int(self.product_id))]
    )
    subscription_model = self.env['wens.investment.financing.subscription']
    subscription_records = subscription_model.search(
        [('product_id', '=', int(self.product_id)), ('confirmed', '=', 'True'), ('paid', '=', 'True')])

    for item1 in cash_transfer_records:
        for item2 in subscription_records:
            #item1.dividend_id = self.id,
            #item1.user_id = item2.user_id.id,
            item1.money = float(item2.money*each)
            print item2.money, each
            print item1.money
            item1.transfer_direction = u'收入'
            item1.remark = u'分红收入'
    return super(dividend,self).write(vals1)
# #---------------------------重写write方法,修改净值和现金转账,from lwl-------------------------------------#

提提2个自己遇到过的问题:

说说自己一直以来搞错的一个git的地方:

每次提交到远程仓库时,必须先commit到本地仓库,确认使用该版本后,才最后push到远程仓库上。

想起了python一个很重要的一个点,就是python类里面的的自带的参数self,表示是本对象!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值