Как отобразить валюту в столбце сгенерированной таблицы Flask Table? - PullRequest
0 голосов
/ 31 марта 2019
* Колба-таблица

имеет несколько определенных типов столбцов.Например, дата: DateCol.Но нет типа столбца для валюты.Поэтому пока данные отображаются с использованием стандартного типа Col.Теперь вы просто получите десятичное число.Это работает, но я бы предпочел формат валюты.

Table.py

# import things
from flask_table import Table, Col, DateCol

# Declare my table
class MyTable(Table):
    classes = ['table', 'table-hover']
    id = Col('id')
    amount = Col('amount')
    date = DateCol('date')

template.html

<div>{{ amounts_table }}</div>

rout.py

@route('/my_table')
def my_table():
    table_content = Amounts.query.all()
    amounts_table = AmountsTable(table_content)
    return render_template('template.html', amounts_table=amounts_table)

результат:

id     amount       date
1      1,523.78     30-03-2019

что я хотел бы достичь:

id     amount       date
1      € 1.523,78   30-03-2019

1 Ответ

1 голос
/ 01 апреля 2019

Вы можете подкласс Col класса .

Предполагая, что ваши amount данные хранятся в виде строки (например, 1,523.78), вы можете сделать что-то вроде этого:

# Python 3.7

import locale

class CurrencyCol(Col):
    def td_format(self, content):
        amount = float(content.replace(',', ''))
        locale.setlocale(locale.LC_NUMERIC, 'nl_NL')
        val = locale.format_string('%.2f', float(amount), 1, 1).replace(' ', '.')
        return f'€ {val}'

Затем измените таблицу, чтобы использовать новую CurrencyCol:

class MyTable(Table):
    classes = ['table', 'table-hover']
    id = Col('id')
    amount = CurrencyCol('amount')
    date = DateCol('date')
...