一个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/>定义。