Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
2 ตอบกลับ
2225 มุมมอง

Hi everyone,


Is it possible to display a list of one2many field records based on another model's field instead of the model name field? For example, in the related model, there is a field named "code." I would like to list all records in the one2many field but display the "code" field instead of the names of the records.

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hi,


Yes, it's possible to display a One2many field using a custom field (like code) instead of the default name. You can achieve this by using the many2many_tags widget with the display_name option.


Python Code


class Model1(models.Model):

    _name = 'your.module.model_1'

    _description = 'Model 1'


    name = fields.Char(string='Name')

    model_2_ids = fields.One2many('your.module.model_2', 'model_1_id', string='Model 2 Records')



class Model2(models.Model):

    _name = 'your.module.model_2'

    _description = 'Model 2'


    code = fields.Char(string='Code')

    model_1_id = fields.Many2one('your.module.model_1', string='Model 1')


XML View


<record id="view_model1_form" model="ir.ui.view">

    <field name="name">model1.form</field>

    <field name="model">your.module.model_1</field>

    <field name="arch" type="xml">

        <form string="Model 1">

            <sheet>

                <field name="model_2_ids" widget="many2many_tags" options="{'display_name': 'code'}"/>

            </sheet>

        </form>

    </field>

</record>


Hope this helps

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

you can simply add:

class RelatedModel(models.Model):

    _rec_name = 'code'


​code = fields.Text('Code')

to your one2many related model

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
1
ม.ค. 25
1833
0
พ.ย. 22
132
2
ก.ย. 22
9591
2
เม.ย. 22
4632
0
ก.ค. 21
7278