当Start=(Start_new+Start_old(>0或为正并且End=(End_new+End_old(>0或为正,则验证错误将引发"0";正Strat和正End不允许出现在";,
但在我下面的代码中,它没有检查验证规则,也不允许在连接中使用正的开始值和正的结束值。
我在django表单.py 中的代码
for i in range(count):
start_new = int(self.data.get(f'applicationruntime_set-{i}-start_new') or 0)
start_old = int(self.data.get(f'applicationruntime_set-{i}-start_old') or 0)
end_new = int(self.data.get(f'applicationruntime_set-{i}-end_new') or 0)
end_old = int(self.data.get(f'applicationruntime_set-{i}-end_old') or 0)
if (start_new + start_old) > 0 and (end_new+end_old) > 0:
raise ValidationError(
f" Positive Start values and Positive End values are not allowed to be used in conjunction")
尝试更改优先级:
((start_new + start_old) > 0) and ((end_new+end_old) > 0)
但这种方式更好:
(start_new > start_old) and (end_new > end_old)
当然,OOP要好得多:
if not self.date_range_is_valid():
...
并且应该在某个地方定义方法CCD_ 1。它可以帮助您制定验证方法,并根据业务需求进行更改。