модели, чтобы джанго использовало его перед вставкой данных в БД?
можно к примеру создать свой филд и в пресейве сделать то что надо но я не понял, что и зачем, конкретно, надо)
хочу созранить в базе инфу. чтобы сохранить - хочу перевести ее в json. сейчас использую jsonfield. но он ругается на Decaimal(который приходит в инфе, которую хочу сохранить). для этого всего пытаюсь как то прикинуть что будет лучше - избавиться от decimal где он приходит, или попытаться избавиться от него перед сохранением в модель. но не совсем понимаю - как можно изменить филд перед сохранением.
или создать свой филд
а можно данные и код посмотреть?
также в джейсонфилде есть атрибут енкодер мб оно поможет, намного лучше
{'type': 'type', 'description': 'desc', 'total': {'additional': Decimal('0.00'), 'original': Decimal('0.00')}} - что хочу сохранить raw_data = JSONField(blank=True, null=True) - в моделе
тебе приходит децимал, а ты его во флоат сохраняешь?
да, потому что decimal не перегоняется в json
может быть сделать сериализатор с вложенным для этого джейсона и в ините вложенного переводить приходящий децимал во флоат
понял. спасибо. пойду пробовать
хотя не уверен что на выходе джейсон получится, возможно просто в ините основного перехватывать и переводить
сделай также сначала так from django.core.serializers.json import DjangoJSONEncoder raw_data = JSONField(blank=True, null=True, encode=DjangoJSONEncoder) а потом уже, то что Николай пишет, если не получится
тоже отличная мысль. спасибо
потом отпишись, тоже интересно потому что если верить доке оно понимает десимал
это помогло на данный момент. спасибо большое)
👍
Обсуждают сегодня