我需要在特定字段中加载序列号。
为此我正在使用ir.sequence
模型,正如我在其他模块中看到的那样。
问题是,它还没有工作,我不知道我在这里做错了什么,或许我正在使用的例子只是为“标题”字段工作?
这是我的代码:
... _name = "product.product"
_description = "Product"
_table = "product_product"
_inherits = {'product.template': 'product_tmpl_id'}
_inherit = ['mail.thread']
_order = 'default_code,name_template'
_columns = {
'codigo_n' : fields.char('Codigo Arancelario', size=64),
'tec_esp' : fields.char('Especificaciones tecnicas', size=72),
'qty_available': fields.function(_product_qty_available, type='float', string='Quantity On Hand'),
'virtual_available': fields.function(_product_virtual_available, type='float', string='Quantity Available'),
'incoming_qty': fields.function(_product_incoming_qty, type='float', string='Incoming'),
'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'), ... code keeps going...
此处感兴趣的字段为codigo_n
,其类型为char
我添加了_defaults
语句,以便与ir.sequence
一起使用,如下所示:
_defaults = {
'codigo_n': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid,'product.product'),
}
显然我创建了.xml序列文件,添加到data
文件中的__openerp__.py
依赖项,这是custom_sequence.xml
的代码:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- Secuencias para product.product -->
<record id="seq_type_product_product" model="ir.sequence.type">
<field name="name">Product</field>
<field name="code">product.product</field>
</record>
<record id="seq_product_product" model="ir.sequence">
<field name="name">Product</field>
<field name="code">product.product</field>
<field name="prefix">NG</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
</record>
</data>
</openerp>
我认为这是设置此方法的正确方法,我只需要让codigo_n
使用此序列,任何关于它为什么不起作用的想法?
我希望我已经解释过了。
提前致谢。
答案 0 :(得分:2)
您可以使用xml在 module_name_view.xml 中动态创建序列,这是避免在模块安装过程中手动创建依赖序列的理想方法。
以下是 module_name_view.xml 文件中设置的代码:
<record forcecreate="1" id="seq_type_id" model="ir.sequence.type">
<field name="name">my_seq</field>
<field name="code">my_seq_code</field>
</record>
<record forcecreate="1" id="seq_id" model="ir.sequence">
<field name="name">my_seq</field>
<field name="code">my_seq_code</field>
<field name="prefix">SEQ_</field>
<field name="suffix"></field>
</record>
祝你好运。
答案 1 :(得分:1)
我看到的一种可能性是你很多人没有正确更新xml /模块。 检查“设置/技术/序列和标识符/序列”并查找您创建的序列。