Проверка перекрывающихся интервалов integerfield validation django python

может ли кто-нибудь помочь мне как решить проблему перекрывающейся валидации в django

moldel.py

 start = IntegerRangeField()
 end = IntegerRangeField()

form.py

class CheckForm(forms.ModelForm): def clean(self):

start=cleaned_data.get("start")
    end = cleaned_data.get("end")
    conflicts = Check.objects.filter(
        start_bbch__lte=end,
        end_end__gte=start,
    )
    if any(conflicts):
        raise forms.ValidationError(_("overlapping not allowed" % conflicts.count()))
    return cleaned_data

Я думаю, что для проверки на перекрытие вам нужно убедиться, что ни начало, ни конец вашего нового объекта не находится внутри существующего интервала.

Так что я бы предложил что-то вроде этого:

conflicts = Check.objects.filter(
    start_bbch__gte=start, end_end__lte=start
) | Check.objects.filter(
    start_bbch__gte=end, end_end__lte=end
)

Вернуться на верх