0

特定のフィールドにシーケンス番号をロードする必要があります。

このため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_defaultsir.sequence

_defaults = {
    'codigo_n': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid,'product.product'),
}

data明らかに、ファイル内の依存関係に追加された .xml シーケンス ファイルを作成しました。__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このシーケンスで動作するようにする必要があるだけです。なぜ動作しないのか考えていますか?

私は自分自身を説明したことを願っています。

前もって感謝します。

4

2 に答える 2