Python 如何单独比较(域)多个字段的值?
我想通过用户输入的值来比较一个字段many2manyPython 如何单独比较(域)多个字段的值?,python,xml,odoo,Python,Xml,Odoo,我想通过用户输入的值来比较一个字段many2manyline\u mission的值,只是为了检查员工是否已经在某个时间间隔内,我尝试了此代码,但不起作用: 我的领域很多: line_mission = fields.Many2many('hr.employee', string='Employés', help="Employee sent on mission", copy=True, auto_join=True,readonly=
line\u mission
的值,只是为了检查员工是否已经在某个时间间隔内,我尝试了此代码,但不起作用:
我的领域很多:
line_mission = fields.Many2many('hr.employee', string='Employés', help="Employee sent on mission",
copy=True, auto_join=True,readonly=True, states={'draft': [('readonly', False)]})
和我的功能,用于检查员工是否在任务开始日期
和任务结束日期
之间:
@api.multi
@api.constrains('mission_start_date', 'mission_end_date')
@api.depends('line_mission.name')
def _check_date(self):
for mission in self:
employee = self.env['hr.employee'].search_count([('name', '=', self.id)])
domain = [
('mission_start_date', '<=', mission.mission_end_date),
('mission_end_date', '>=', mission.mission_start_date),
('id', '!=', mission.id),
('state', 'not in', ['end_mission']),
]
nmissions = self.search_count(domain)
if employee in mission.line_mission.name and nmissions:
raise UserError(_('Vous ne pouvez pas avoir 2 missions qui se chevauchent le même jour!'))
@api.multi
@api.约束(“任务开始日期”、“任务结束日期”)
@api.depends('line_mission.name'))
定义检查日期(自我):
自我使命:
employee=self.env['hr.employee'].search_count([('name','=',self.id)])
域=[
('mission_start_date','=',mission.mission_start_date),
('id','!=',mission.id),
(‘国家’、‘不在’、[‘任务结束’),
]
nmissions=self.search\u计数(域)
如果mission.line_mission.name和N任务中的员工:
raise UserError('Vous ne pouvez pas avoir 2 missions QUE se chevauchent le même jour!'))
您的函数中存在一些问题
api.dependens
,因为api.constraints
已经触发了函数api.constraints
中添加line\u任务
,因为如果employee many2many字段发生更改,则应检查约束line\u任务
重命名/重构为employee\u id
或employee\u on\u任务
search\u count
。means是foreach循环中的第一行if
中@api.multi
@api.约束(“任务开始日期”、“任务结束日期”、“线路任务”)
定义检查日期(自我):
自我使命:
#下面的搜索真的很奇怪
#你总是只找到一个吗?
#你真的想用“ìd”搜索“name”吗?
employee=self.env['hr.employee'].search([('name','=',self.id)])
域=[
('mission_start_date','=',mission.mission_start_date),
('id','!=',mission.id),
(‘国家’、‘不在’、[‘任务结束’),
]
nmissions=self.search\u计数(域)
#检查记录是否在记录集中
如果员工在mission.line_任务和任务中:
raise UserError('Vous ne pouvez pas avoir 2 missions QUE se chevauchent le même jour!'))
您的函数中存在一些问题
api.dependens
,因为api.constraints
已经触发了函数api.constraints
中添加line\u任务
,因为如果employee many2many字段发生更改,则应检查约束line\u任务
重命名/重构为employee\u id
或employee\u on\u任务
search\u count
。means是foreach循环中的第一行if
中@api.multi
@api.约束(“任务开始日期”、“任务结束日期”、“线路任务”)
定义检查日期(自我):
自我使命:
#下面的搜索真的很奇怪
#你总是只找到一个吗?
#你真的想用“ìd”搜索“name”吗?
employee=self.env['hr.employee'].search([('name','=',self.id)])
域=[
('mission_start_date','=',mission.mission_start_date),
('id','!=',mission.id),
(‘国家’、‘不在’、[‘任务结束’),
]
nmissions=self.search\u计数(域)
#检查记录是否在记录集中
如果员工在mission.line_任务和任务中:
raise UserError('Vous ne pouvez pas avoir 2 missions QUE se chevauchent le même jour!'))
我尝试了你的代码,但它不起作用,在一段时间间隔内,员工之间总是有重叠。问题可能在于员工搜索,我不理解。这就是为什么我把评论放在上面。我只是想提醒你一些错误。我甚至不知道这个约束是在什么模型上实现的。我尝试了你的代码。它不起作用,在一段时间间隔内,员工之间总是有重叠。问题可能在于员工搜索,我不理解。这就是为什么我把评论放在上面。我只是想提醒你一些错误。我甚至不知道这个约束是在什么模型上实现的。