Данные Excel не сортируются по типу decimal.Decimal
У меня есть представление, в котором я экспортирую данные в числовом формате, но когда я сортирую данные, они не сортируются, так как excel не считает значения числовыми данными, как я могу преобразовать их в числовые данные, чтобы отобразить данные в числовом формате и заставить сортировку работать.У меня есть функция, которая получает данные вот как это выглядит.
def get_output_value(self, key, value, neutral=None):
display = value
if value is None and not user.is_active:
return '-', '-'
if value is None:
return f"${Decimal('.00')}", f"${Decimal('.00')}"
if isinstance(value, Decimal):
return f"${intcomma(value.quantize(Decimal('.00')))}",f"${intcomma(display.quantize(Decimal('.00')))}"
return value, display
вы должны обернуть данные в типы класса float или int
e.g.
def get_output_value(self, key, value, neutral=None):
display = value
if value is None and not user.is_active:
return 0, 0
if value is None:
return float(f"{Decimal('.00')}"), float(f"{Decimal('.00')}")
if isinstance(value, Decimal):
return float(f"{intcomma(value.quantize(Decimal('.00')))}"), float(f"{intcomma(display.quantize(Decimal('.00')))}")
return float(value), display
ВОЗМОЖНО, ЛУЧШИЙ СПОСОБ:
def get_output_value(self, key, value, neutral=None):
display = value
if value is None and not user.is_active:
return 0, 0
if value is None:
return Decimal('.00'), Decimal('.00')
if isinstance(value, Decimal):
return intcomma(value.quantize(Decimal('.00'))), intcomma(display.quantize(Decimal('.00')))
return float(value), display