Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

一个one2many字段的创建问题



  • 有一个model(以下称为model_a),model_a中有一个one2many字段(以下称为field_1,对应MA的外键字段称为ma_id--是个many2one字段)。
    修改model_a的记录时,可以在form中添加field_1的记录,可以选择ma_id字段的值为正在修改的model_a对应的记录。这是没有问题的

    新建model_a记录时,添加field_1的记录的时候,由于这时该新建的model_a记录还没有保存到数据库,ma_id字段的下拉列表里是没有该条model_a记录的。这就导致了无法在创建父记录的时候,同时创建one2many记录,有什么办法解决吗?



  • 有一个model(以下称为model_a),model_a中有一个one2many字段(以下称为field_1,对应MA的外键字段称为ma_id--是个many2one字段)。
    修改model_a的记录时,可以在form中添加field_1的记录,可以选择ma_id字段的值为正在修改的model_a对应的记录。这是没有问题的

    新建model_a记录时,添加field_1的记录的时候,由于这时该新建的model_a记录还没有保存到数据库,ma_id字段的下拉列表里是没有该条model_a记录的。这就导致了无法在创建父记录的时候,同时创建one2many记录,有什么办法解决吗?



  • [quote author=iooop link=topic=17606.msg32244#msg32244 date=1463042576]
    有一个model(以下称为model_a),model_a中有一个one2many字段(以下称为field_1,对应MA的外键字段称为ma_id--是个many2one字段)。
    修改model_a的记录时,可以在form中添加field_1的记录,可以选择ma_id字段的值为正在修改的model_a对应的记录。这是没有问题的

    新建model_a记录时,添加field_1的记录的时候,由于这时该新建的model_a记录还没有保存到数据库,ma_id字段的下拉列表里是没有该条model_a记录的。这就导致了无法在创建父记录的时候,同时创建one2many记录,有什么办法解决吗?
    [/quote]

    感谢@上海-开阖-Jeff的解答,已经找到解决方法。
    原来在field_1对应的form定义中不能包括外键ma_id的定义,去掉就好了,系统会自己处理并且保存ma_id的值。
    另外如果field_1对应的form定义在别的地方也会调用(这样就不能删除外键ma_id的定义)。可以在<tree>...</tree>后加入一个不包含ma_id的<form/>定义。



  • 谢谢分享,这个在文档里确实没有写


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待