콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
2675 화면

I have a form with a smart button in it that takes me to another model

when I want to duplicate the current record, the content that can be seen via the smart button will not be duplicated

How to solve this ? I mean are there an existing solution or I should pass by inheriting duplicate method ?


Thank you

아바타
취소
베스트 답변

Hello Fakhri,

This is due to because the children are linked to the original parent by Id. Like you say I think the best way to do this would be to override the copy function on the parent object and then search for all children which relate to the original parent. Then for each child, duplicate and change the many2one to link to the new record which you have just duplicated. 

Here is an example for duplicating a parent and copy all CRM records from the old to new:

class odoo_help_4(models.Model):
    _inherit = "res.partner"
    def copy(self, default=None):
        new = super(odoo_help_4, self).copy(default=default)
        # get all deals which are equal to old
        all_crms = self.env["crm.lead"].search([("partner_id", "=", self.id)])
        # duplicate all deals and change the partner_id to the new id
        for crm in all_crms:
            crm.copy({"partner_id": new.id})
        return new
I hope this helps,

Thanks, 
아바타
취소
작성자

as you said Jack i should pass by overriding copy method.

Anyway think it will be very useful if copy method will take this case in consideration on odoo next versions

관련 게시물 답글 화면 활동
3
8월 24
15529
2
6월 23
4328
0
10월 17
2646
1
7월 16
10906
0
3월 15
3816