'<' не поддерживается между экземплярами 'int' и 'str' django Проверка на перекрытие

Когда я проверяю перекрытие в Django формах с помощью этого кода, я не могу проверить перекрытие, получая ошибку кортежей. Как я могу решить эту ошибку,

form.py

record=[]
    if count > 1:
        for i in range(count):
            start_run = self.data.get(f'runningdefinition_set-{i}-start_run',[])
            end_run = self.data.get(f'runningdefinition_set-{i}-end_run',[])
            application_run =self.data.getlist(f'runningdefinition_set-{i}-application_run',[])
            record.append((i, start_run, end_run, application_run))
            first_value=[]
            for j in record:
                first_value.append(j[0])
            last_value=[]
            for k in record:
                last_value.append(k[1])
            if first_value[0] < last_value[-1]:
                raise ValidationError("overlap not allowed")

Вы делаете "запись" состоящей из четырех значений, индекса i в count, который является целым числом, и вывода того, что находится в self.data, который, судя по вашему сообщению об ошибке, является строкой. Возможно, вы хотите, чтобы first_value было дополнено до j[1], а last_value было дополнено до k[2]? Когда вы сравниваете эти два значения, возможно, вы хотите сравнить их как плавающие значения, а не как строки?

Т.е. float(first_value[0]) < float(last_value[-1]) если вы не собираетесь сравнивать строки, а хотите сравнить фактические значения строк.

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