Я сохраняю данные в бэкэнд PostgreSQL через Django. Многие из полей в моих моделях имеют для DecimalFields произвольно высокие значения max_digits и decimal_places, соответствующие числовым столбцам в базе данных базы данных. Данные в каждом столбце имеют точность (или число десятичных разрядов), которая неизвестна a priori , и каждый элемент данных в данном столбце не обязательно должен иметь одинаковую точность.
Например, аргументы модели могут выглядеть так:
{'dist': Decimal("94.3"), 'dist_e': Decimal("1.2")}
{'dist': Decimal("117"), 'dist_e': Decimal("4")}
где ключи - это имена столбцов базы данных.
После вывода мне нужно сохранить и заново отобразить эти данные с точностью, с которой они были прочитаны. Другими словами, после запроса к базе данных отображаемые данные должны выглядеть точно так же, как данные, которые были прочитаны, без дополнительных или отсутствующих конечных 0 в десятичных разрядах. Однако при запросе в оболочке django или в интерфейсе администратора все данные DecimalField возвращаются со многими конечными нулями.
Я видел похожие вопросы, на которые даны ответы для денежных значений, где точность (2 десятичных знака) известна и одинакова для всех данных в данном столбце. Однако как лучше сохранить точную точность, представленную десятичными значениями в Django и числовыми значениями в PostgreSQL, если точность не одинакова и заранее не известна?
EDIT:
Возможно, дополнительная полезная информация: при просмотре таблицы, в которой сохраняются данные в dbango-оболочке Django, также присутствуют многочисленные конечные нули. Десятичное значение python, по-видимому, преобразуется в значение максимальной точности, указанное в файле models.py, после сохранения в серверной части PostgreSQL.