我正在研究学生注册模块。我想自动生成注册码并将其保存到数据库中,其中计算方法存在一些问题。 1 ..不能将计算结果保存在数据库中。 2 ..当我使用store属性和字段并依赖api时,变量中没有增量。
这是我的代码。
reg_code = fields.Char(compute='code', string='Code', readonly=True)
@api.multi
def get_code(self):
count = 0
reg = "Reg #"
for record in self:
count += 1
record.reg_code = reg + " " + str(count)
if record.reg_code:
count += 1
record.reg_code = reg+" "+str(count)
else:
count += 1
record.reg_code = reg+" "+str(count)
答案 0 :(得分:0)
您可以在Odoo中使用序列。
中找到序列启用活动开发者模式
设置 - >序列
然后在您的模块中添加此代码:
将字段更改为
reg_code = fields.Char(string='Code',required=True, copy=False, readonly=True, index=True, default= lambda self: self.env['ir.sequence'].next_by_code('student.registration'))
创建另一个xml文件,如果您想按代码创建序列。
shipping_sequence.xml
并添加此代码
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Sequences for student.registration -->
<record id="seq_student_registration" model="ir.sequence">
<field name="name">Student Registration</field>
<field name="code">student.registration</field>
<field name="prefix">Code-</field>
<field name="padding">1</field>
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>