@duff89

Как сохранить порядок ключей в JSONField Django?

В Django модели есть:
raw_json = models.JSONField(null=True, default=None)

Проблема в том, что в дальнейшем при чтении данного json не сохраняется первоначальный порядок ключей, а в данном случае это очень важно.
Попробовал переопределить save в модели таким образом, не помогло:
def set_ordered_json(self, data):
        ordered_data = OrderedDict(data)
        self.raw_json = ordered_data

    def save(self, *args, **kwargs):
        if self.raw_json:
            self.set_ordered_json(self.raw_json)
        super(Mymodelname, self).save(*args, **kwargs)

Может кто-то сталкивался с подобным?
Версия Django 4.2.6
БД postgres:12.0-alpine
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Перестаньте уже хранить порядок ключей в dict (хотелка такого с большой вероятностью проблема в архитектуре), хотите порядок положите ключ-значение в list (а не в OrderedDict, у тебя всё таки json, либо писать сериализатор для json)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы