Данные 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
Вернуться на верх