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

I am using odoo18, and it troubles me with the control in list view that even I copied code from purchase module, it seems like not capable.

code like:

<control>
<create name="add_product_control" string="add field" context="{'default_display_type': ''}"/>
<create name="add_section_control" string="add a section" context="{'default_display_type': 'line_section'}"/>
<create name="add_note_control" string="add a note" context="{'default_display_type': 'line_note'}"/>
</control>

But when I click on the add a section or add a note, it always creates a record like clicking on add field.

Is there any possible solution, thanks & regards.

아바타
취소
베스트 답변

Hi,

You need to make sure your model uses the context default when creating:

class YourModel(models.Model):

    _name = "your.model"

    _description = "Your Model"


    display_type = fields.Selection([

        ('', 'Normal Line'),

        ('line_section', 'Section'),

        ('line_note', 'Note'),

    ], string="Display Type", default='')


    @api.model

    def create(self, vals):

        if not vals.get('display_type'):

            vals['display_type'] = self._context.get('default_display_type', '')

        return super().create(vals)


XML:

<field name="display_type"/>

    <control>

        <create name="add_product_control"

                string="Add field"

                context="{'default_display_type': ''}"/>

        <create name="add_section_control"

                string="Add a section"

                context="{'default_display_type': 'line_section'}"/>

        <create name="add_note_control"

                string="Add a note"

                context="{'default_display_type': 'line_note'}"/>

    </control>


Hope it helps.

아바타
취소
관련 게시물 답글 화면 활동
3
9월 25
709
3
8월 25
991
1
7월 25
875
1
7월 25
1226
1
7월 25
1647