如何在odoo中按顺序添加动态前缀

如何在odoo中按顺序添加动态前缀,odoo,odoo-11,Odoo,Odoo 11,我正在尝试使用动态前缀实现一个序列,但我不能。 我无法将变量*.py传递给我的*.xml 我尝试使用上下文和域,但收到以下错误消息: AssertionError:Element odoo有额外的内容:记录,第4行 我的xml代码是: <?xml version="1.0" encoding="utf-8"?> <odoo> <record id="seq_obra" model="ir.sequence"> <field name=

我正在尝试使用动态前缀实现一个序列,但我不能。 我无法将变量*.py传递给我的*.xml 我尝试使用上下文和域,但收到以下错误消息: AssertionError:Element odoo有额外的内容:记录,第4行

我的xml代码是:

<?xml version="1.0" encoding="utf-8"?>
<odoo>

   <record id="seq_obra" model="ir.sequence">
      <field name="name">Secuencia Obra</field>
      <field name="code">secuencia.obra</field>
      <field name="prefix">%(prefijo)</field>  <-- this is the variable that i want to read from my .py
      <field name="padding">3</field>
   </record>
我的密码是:

class Poscontrata(models.Model):
   _name = 'poscontrata'
   name = fields.Char(string='Descripcion', required=True)
   sigla = fields.Char(required=True)
   area_id = fields.Many2many('area', string='Area')
   active = fields.Boolean(default=True)

   @api.model
   def create (self,values):
      area_cod =  values['area_id'][0][2]
      ctd_area_dsc = len(area_cod)

      for x in range(0, ctd_area_dsc):
      prefijo = '-' + values['sigla'] + '-' + self.env['area'].search([('id', '=', area_cod[x])], limit=1).sigla + '-'   
      function_call_sequence_and_send_variable('secuencia.obra','prefijo') <-- this is the function that i need

      return super (Poscontrata,self).create(values)
提前感谢

试试这个:


name=self.env['ir.sequence']。在python函数中求解'your_sequence_code'

时,只取序列的下一个数字,然后构造我的新名称

py中的Python函数:

@api.model
    def create(self, vals):
        correlativo_en_db = self.env['ir.sequence'].next_by_code('ruta.sequence')
        numero_correlativo = re.findall("\d+", correlativo_en_db)[0]
        fecha_entrega = vals['fecha']
        correlativo = fecha_entrega + '/' + numero_correlativo
        vals['name'] = correlativo
        result = super(Ruta, self).create(vals)
我的Sequence记录XML:

    <record id="seq_ruta" model="ir.sequence">
        <field name="name">Ruta</field>
        <field name="code">ruta.sequence</field>
        <field name="prefix">X</field>
        <field name="padding">2</field>
        <field name="use_date_range">True</field>
        <field name="company_id" eval="False"/>
    </record>

为什么不尝试使用browseid而不是searchid=id,limit=1?您想做什么?如果要设置动态序列,则该序列已在设置中。