我正在使用此代码进行序列生成
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)
但我只得到'/'作为序列号..为什么?
答案 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)