ValueError期望的单例

时间:2018-03-25 13:49:31

标签: odoo

class Aveant(models.Model):
_name=  'facturation.avenant'
_description    =   'Avenant'
contrat_id  =   fields.Many2one('facturation.contrat')
travSup_ids = fields.One2many('facturation.travsup','attachment_id',compute='display_trav')


@api.multi
@api.onchange('contrat_id')
def display_trav(self):

    if self.contrat_id:

        attachements=self.env["facturation.attachement"].search([('contrat_id','=',self.contrat_id.id)])

        print attachements.id
        trv=self.env["facturation.travsup"].search([('attachment_id','=',attachements.id)])
        print trv
        for obj in self:
            obj.travSup_ids = trv

如何纠正此错误:预期单身人士:facturation.attachement(3,4,6,7)

代码xml:

 <field name="travSup_ids">
<tree editable="True">
    <field name="ouvrage_id"/>
    <field name="article_id"/>
    </tree>         
</field>

如何在视图中显示???

2 个答案:

答案 0 :(得分:1)

您使用attachements.id,因为它是单个值,但可能使用此代码

self.env["facturation.attachement"].search([('contrat_id','=',self.contrat_id.id)])

你得到更多的物品。我认为你应该使用&#39; ==&#39;而不是&#39; =&#39; :

self.env["facturation.attachement"].search([('contrat_id','==',self.contrat_id.id)])

答案 1 :(得分:0)

你在attachements变量中有多个记录集。因此,您可以尝试使用以下代码来解决它。

trv = self.env["facturation.travsup"].search(
    [('attachment_id','in',attachements.ids)])
相关问题