Sq3 - localhost
Postgres - heroku
Дело в том, что я брал значение из бд (Decimal) и в коде преображал его во float для сохранения в другую таблицу и хеширования.
Так в чём суть: в sq3, значение 100.55 сохранялось как 100.55, а в postgres сохранялось как 101, это нюанс со стороны разных бд? Или я что то не так понимаю?)
После того как переписал модель под FloatField всё стало работать корректно
Может быть количество знаков после запятой было указано 0 в DecimalField?
Нет, указал 2 знака
Ну так не надо в коде во float преобразовывать.
Сериалайзер ругался, плюс надо было использовать функцию хеширования
Сериалайзер ка ругался. Я вот учетной системой занят никогда во флоат не конверчу, с сериализаторами проблем тоже нет. И с пересохранением
Для decimal надо переводить в текст и хешировать.
У меня сигнатура была создана и на стороне апи куда передавал принимала только флоат значение
Да даже если бы ты гонял между десимал и флоат у тебя не было бы такого округления. Дело не во флоат. У тебя число целым где то стало
Так вот в этом то и дело, только в бд постгрес стало, а в дефолтной бд (склайт) все было окей
Значит смотри в логе все запросы к бд
Мне помогло переопределения модели как FloatField
Лучше уж в текст чем во флоат )
Ты какую сущность считаешь? Деньги?
Тогда никаого флоата
Всегда число будет больше 0
Вот тут ) а если серьезно это долго обсуждать. Но начни с того что такое флоат вообще и сравни с деньгами. Попробуй разные варианты и увидешь как у тебя начнуться проблемы с = * и т.п.
Хорошо, тогда буду про это читать ещё)))
Обсуждают сегодня