Python 3.x 如何在域筛选器odoo中获取7个以上的字段

Python 3.x 如何在域筛选器odoo中获取7个以上的字段,python-3.x,odoo,erp,odoo-12,Python 3.x,Odoo,Erp,Odoo 12,这是代码,它过滤了7个字段,我需要7个以上的字段来实现它。请检查我的压痕 class sem(models.Model): _name = 'module4_sem' _rec_name = 'id' sem_no = fields.Char("Semester No") class Semester(models.Model): _name = 'module4_semester' _description = 'semester info' cou = fields.Many2one(

这是代码,它过滤了7个字段,我需要7个以上的字段来实现它。请检查我的压痕

class sem(models.Model):
_name = 'module4_sem'
_rec_name = 'id'

sem_no = fields.Char("Semester No")

class Semester(models.Model):
_name = 'module4_semester'
_description = 'semester info'

cou = fields.Many2one('module4_course',"Course")
sem_tot = fields.Integer(related = 'cou.sem_no',string = "Total Semester")
sem_no = fields.Many2one('module4_sem',string="Semester no")



@api.onchange('sem_tot')
def sem_count(self):
    for rec in self:
        rec.sem_no = False
        s = self.env['module4_sem'].sudo().search([('id','<=',rec.sem_tot)])

        return {'domain':{'sem_no':[('id','in',s.ids)]}}
类别sem(models.Model):
_名称='module4\u sem'
_记录名称='id'
sem_no=fields.Char(“学期号”)
班级学期(模型。模型):
_名称='模块4\u学期'
_description=‘学期信息’
cou=fields.manyOne('module4_课程',“课程”)
sem\u tot=fields.Integer(related='cou.sem\u no',string=“整个学期”)
sem\u no=fields.manyOne('module4\u sem',string=“学期号”)
@api.onchange('sem_tot')
def sem_计数(自身):
对于rec in self:
rec.sem_no=False
s=self.env['module4_-sem'].sudo().search([('id','
@api.onchange('sem_-tot'))
def sem_计数(自身):
model=self.env['module4_sem'].sudo()
s_id=[]
对于rec in self:
rec.sem_no=False

s=model.search([('id','请解释您的需求,您使用('id','最好解释一下您想要实现什么以及您的问题是什么。在包含表单中的值的伪记录上调用。您不需要在
self
上循环。不正确。Onchange是一个函数,在需要时也可以在多个记录集上调用。一个好的做法是循环ever self。它来自于Odoo文档。在您的示例中,您是调用了它还是在
sem_tot
的值更改时调用了它?我想知道您在哪里发现对self进行循环是一种很好的做法。对于哪个记录,您返回了域!请在不进行循环的情况下尝试此代码,并告诉我发生了什么:self.env['your.CLASS'].search(domain).sem_count()您可以这样做
@api.onchange('sem_tot')
def sem_count(self):
    model = self.env['module4_sem'].sudo()
    s_ids = []
    for rec in self:
        rec.sem_no = False
        s = model.search([('id', '<=', rec.sem_tot)])
        s_ids.extend(s.ids)

    return {'domain':{'sem_no': [('id', 'in', s_ids)]}}