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

Hello, How can I show the other field when it is selected?
Scenario:

fieldA has field1 and field2


If field1 is selected, fieldB will display

If field2 is selected, fieldC will display

class AccountVoucherLine(models.Model):
        _inherit = "account.voucher.line"
        
        fieldA = fields.Selection([
                ('field1', 'Field 1'),
                ('field2', 'Field 2'),
            ], 'Field Type', required=True,  index=True)
        
    class AccountVoucher(models.Model):
        _inherit = "account.voucher"
        
        fieldB = fields.Char(string="Field B")
        fieldC = fields.Char(string="Field C")
아바타
취소
베스트 답변

Hello,

        Try this in your xml file,

    <field name="fieldA/>
    <field name="fieldB  attrs="{'invisible': [('fieldA', '!=', 'field1')]}"/>

    <field name="fieldC  attrs="{'invisible': [('fieldA', '!=', 'field2')]}"/>

Thanks

아바타
취소
작성자

Hi, I updated my code.

what if they are related fields from a different model?

Hi, In your case, based on fieldA , the other two fields are displaying. account.voucher.line is the One2many to account.voucher ,

You can have related field only in account.voucher.line and not in account.voucher

For example,

class AccountVoucher(models.Model):

_inherit = "account.voucher"

fieldB = fields.Char(string="Field B")

fieldC = fields.Char(string="Field C")

class AccountVoucherLine(models.Model):

_inherit = "account.voucher.line"

fieldA = fields.Selection([

('field1', 'Field 1'),

('field2', 'Field 2'),

], 'Field Type', required=True, index=True)

fieldB = fields.Char(string="Field B", related='voucher_id.fieldB', store=True)

fieldC = fields.Char(string="Field C", related='voucher_id.fieldC', store=True)

and as I answered before, view can be written only for account.voucher.line

관련 게시물 답글 화면 활동
1
1월 23
2567
0
7월 20
3607
1
7월 19
7208
1
5월 16
17258
1
10월 23
2291