odoo中的序列号生成

时间:2018-05-24 03:26:41

标签: odoo-11

我正在使用此代码进行序列生成

class cardInfo(models.Model):

_name = "library.card"
card_number = fields.Char(String = "Card Number" , size = 7, Translate = True, readonly = True)
user_name = fields.Many2one('student.student',String = "Name")
card_type = fields.Selection([('s', 'Student'), ('l', 'Staff')] , String = "Card Type")
number_of_book_limit = fields.Integer(String = "No Of Book Limit" , default = 0)

@api.model
def create(self, vals):
    seq = self.env['ir.sequence'].next_by_code('library.card.number') or '/'
    vals['card_number'] = seq
    return super(cardInfo, self).create(vals)

但我只得到'/'作为序列号..为什么?

1 个答案:

答案 0 :(得分:2)

你需要创建" ir.sequance"在xml文件中,如

<record id="seq_library_card" model="ir.sequence">
    <field name="name">Library Card</field>
    <field name="code">library.card</field>
    <field name="prefix">LIB</field>
    <field name="padding">5</field>
    <field name="company_id" eval="False" />
</record>

在Py文件中你必须像

一样写
@api.model
    def create(self, vals):
        x = self.env['ir.sequence'].next_by_code('library.card') or '/'
        vals['card_number'] = x
        return super(LibraryCard, self).create(vals)