ValueError 预期单例
ValueError Expected singleton
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>
如何在视图中显示???
您使用 attachements.id 因为它是一个值,但可能使用此代码
self.env["facturation.attachement"].search([('contrat_id','=',self.contrat_id.id)])
你得到了更多的对象。我认为你应该使用 '==' 而不是 '=' :
self.env["facturation.attachement"].search([('contrat_id','==',self.contrat_id.id)])
您在 attachements
变量中获得了多个记录集。所以你可以尝试用下面的代码来解决它。
trv = self.env["facturation.travsup"].search(
[('attachment_id','in',attachements.ids)])
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>
如何在视图中显示???
您使用 attachements.id 因为它是一个值,但可能使用此代码
self.env["facturation.attachement"].search([('contrat_id','=',self.contrat_id.id)])
你得到了更多的对象。我认为你应该使用 '==' 而不是 '=' :
self.env["facturation.attachement"].search([('contrat_id','==',self.contrat_id.id)])
您在 attachements
变量中获得了多个记录集。所以你可以尝试用下面的代码来解决它。
trv = self.env["facturation.travsup"].search(
[('attachment_id','in',attachements.ids)])