'<' не поддерживается между экземплярами '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])
если вы не собираетесь сравнивать строки, а хотите сравнить фактические значения строк.