Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
1158 Lượt xem

Hi. I want to get rid of the first field when creating a new object. Similar to how invoices are automatically assigned an ID, I'd like to do that to some custom models I have created. 

Please help!

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi Salomon Cohen, 

Yes, you can achieve it using sequence for your custom model 

=> For that first of create a field for the storing sequence of custom model

Please find code in comment. 

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

Ảnh đại diện
Huỷ bỏ

Please find code here :-

sequence_no = fields.Char(string='Sequence', required=True,readonly=True,
default=lambda self: _('New'))

=> Add function for the sequence in the following code
@api.model
def create(self, vals):
if vals.get('sequence_no', ('New')) == ('New'):
vals['sequence_no'] = self.env['ir.sequence'].next_by_code(
'custom.model') or _('New')
res = super(CustomModel, self).create(vals)
return res

=> And create a record for that and create an XML file
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="seq_custom_model" model="ir.sequence">
<field name="name">Custom Model Sequence</field>
<field name="code">custom.model</field>
<field name="prefix">CM</field>
<field name="padding">3</field>
<field name="company_id" eval="False"/>
</record>
</odoo>

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 9 24
1636
2
thg 7 24
1797
1
thg 4 24
4798
0
thg 1 24
1386
0
thg 10 23
1390