Как лучше всего организовать доступ с помощью Django к базе данных, в которой некоторые поля DateTime хранятся в местном часовом поясе, а другие - в UTC?

Каким будет наилучший подход к решению следующего случая с помощью Django?

Django нужен доступ к базе данных (в MariaDB), в которой значения времени хранятся в часовом поясе UTC, за исключением одной таблицы, в которой все значения для всех столбцов времени хранятся в локальном часовом поясе (очевидно, отличном от UTC). Эта конкретная таблица заполняется другой системой, не Django, и по некоторым причинам у нас нет возможности преобразовать временные метки в этой таблице в UTC или изменить эту систему, чтобы она начала хранить значения в UTC.

Я прошу вашего мнения о подходе к вышеупомянутому случаю, который был бы настолько бесшовным, насколько это возможно, желательно без выполнения преобразований тут и там в различных частях кодовой базы при доступе и фильтрации полей datetime этой "проблемной" таблицы / модели. Я думаю, что подход на уровне модели, который позволит Django ORM работать так, как если бы значения для этой таблицы хранились в часовом поясе UTC, был бы предпочтительным. Возможно, решение, основанное на пользовательском поле модели, которое выполняет преобразования из базы данных и обратно "прозрачно". Правильно ли я рассуждаю? Или, возможно, есть лучший подход?

Это то, что есть. Если у вас разные часовые пояса, то вам нужно конвертировать разные часовые пояса в тот, который вы предпочитаете. Плюс, нет такой вещи, как по причинам, по которым мы не можем иметь возможность конвертировать временные метки в этой таблице в UTC - что ж, очень жаль для вас, надо было подумать об этом, теперь вам придется иметь дело с этим (если это так, а это не так - это "программирование", в конце концов. Конечно, все можно изменить)

Вернуться на верх