'>' не поддерживается между экземплярами 'NoneType' и 'NoneType' Проверка перекрытия

Здравствуйте, я получаю эту ошибку при проверке валидности

def sefl(clean):

  start_number=self.cleaned_data.get("start_number",None)
  end_number=self.cleaned_data.get("end_number",None)
  latest_start=max(start_number, end_number)
  earliest_end = min(start_number, end_number)
  delta = (earliest_end - latest_start) + 1
  if delta is None:
        raise ValidationError("overlap not allowed")

Вам нужно будет поймать создаваемые вами значения none, например, так:

def sefl(clean):
  start_number = self.cleaned_data.get("start_number", None)
  end_number = self.cleaned_data.get("end_number", None)
  if start_number is not None and end_number is not None:
      latest_start=max(start_number, end_number)
      earliest_end = min(start_number, end_bbch)
      delta = (earliest_end - latest_start) + 1
      if delta is None:
            raise ValidationError("overlap not allowed")
  else:
      raise ValidationError("start_number and end_number are required")

Это происходит потому, что вы определяете значения по умолчанию для обеих переменных как None. Если хотя бы одна из них действительно None в момент сравнения, которое выполняют max или min, то возникает проблема, с которой вы столкнулись.

Есть несколько способов обойти это, если вас это интересует. Например, вы можете использовать другое значение по умолчанию вместо None, если для этого есть подходящее значение.

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