0
お客様は、単一フォームで複数のリードを管理できるように、私はOdooのCRMモジュールを変更したいと考えています。そのために私は親子関係を作りました。フォームビューはこのように見ているOdooの親から子にデータを複製する方法は?
#Parent save id of child.
parent_id = fields.Many2one('crm.lead', string="Parent Lead", ondelete="cascade")
# Child save id of parent.
child_ids = fields.One2many('crm.lead', 'parent_id', string="Child Lead", ondelete="cascade")
同じモデルでcrm.modelある両方:Form View
は今、私はそのようなコードを書きたいユーザーは、親にデータを入力するたびに、それはそれをリード子供のリードに自動的に記入されます。
はこれまでのところ、私は、次の試してみました:
はのonchange関数を追加しますが、実行されているが、フィールドに私の子を更新しません。
@api.onchange('child_ids','net_net_all') def _update_values(self): detail = [] if not self.parent_id: partner_probability = self.probability self.balance = self.net_net_all for record in self.child_ids: self.balance -= record.net_net_child_all detail.append((0,0,{ 'reference': self.reference, 'partner_id': self.partner_id, 'agency': self.agency, 'partner_contact': self.partner_contact, 'agency_contact': self.agency_contact, 'agent_commission': self.agent_commission, 'email_from': self.email_from, 'phone': self.phone, 'user_id': self.user_id, 'team_id': self.team_id, 'region': self.region, 'segement': self.segement, 'type_of_advertisement': self.type_of_advertisement, 'planned_revenue_all': record.net_net_child_all * partner_probability, 'planned_revenue': record.net_net_child * partner_probability, })) return {'value' : {'child_ids' : detail}}
を変更関数を作成したが、リードが変更されたときに、リードが作成されていないときにのみ影響します。また、適切に実行するために多くの時間を取る。
if len(vals) == 1 and 'message_follower_ids' in vals.keys(): for record in self.child_ids: record.reference = self.reference record.partner_id = self.partner_id record.agency = self.agency record.partner_contact = self.partner_contact record.agency_contact = self.agency_contact record.agent_commission = self.agent_commission record.email_from = self.email_from record.phone = self.phone record.user_id = self.user_id record.team_id = self.team_id record.region = self.region record.segement = self.segement record.type_of_advertisement = self.type_of_advertisement
仕事を周りに勧めてください。 ありがとうございます。
私は同じモデル** crm.lead **を使用しており、同じフィールドにあるデータを親から子にコピーする必要があります。 例: 親IDのuser_idフィールドのデータは、child_idのuser_idフィールドにコピーする必要があります。 報告の目的で必要です。 – Vikas
@Vikasに関連しています。 – travisw
email_from = fields.Char( 'Email'、related = 'parent_id.email_from'、help = "顧客の担当者のメールアドレス"、index = True、track_visibility = "onchange"、store = True) RuntimeError: Pythonオブジェクトを呼び出すときに最大再帰深度を超えました – Vikas