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>
如何在视图中显示???
答案 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)])