После прочтения источника в django я придумал что-то вроде этого:
def __init__(self, max_values, *args, **kwargs):
super(SendFleetFormOne, self).__init__(*args, **kwargs)
for name, value in max_values.items():
if name not in self._done:
self.fields[name].validators.append(validators.MaxValueValidator(value))
self._done.append(name)
Проверяющая часть состоит в том, что она иногда добавляет один и тот же валидатор несколько раз (понятия не имею, почему)
[править]
После повторной проверки, это не работает так, как должно. Очевидно, он всегда использует max_values первого лица, использующего форму - это не имеет особого смысла на самом деле.