Почему Django создает столбцы временных меток Postgres с часовыми поясами?

Я думал, что Django создает столбцы datetime, которые не зависят от часового пояса, но когда я посмотрел на свою таблицу Postgres, я увидел, что записанные там значения содержат информацию о часовом поясе.

Пройдя дальше, я обнаружил, что серверная часть Postgres предписывает Django создавать столбцы, использующие часовые пояса.

Из django / db / backends / postgresql / creation.py:

data_types = {
        ...
        'DateTimeField':     'timestamp with time zone',
        ...

Схема показывает, что созданный столбец указан как «отметка времени с часовым поясом».

CREATE TABLE notification_notice
(
  ...
  created timestamp with time zone NOT NULL,
  ...

Журнал Postgres показывает отправленный оператор обновления. Django создал оператор SQL, который использовал UTC в качестве часового пояса, как указано в моем файле настроек Django.

UPDATE "notification_notice" SET "sender_id" = 1, "group_id" = NULL, "notice_type_id" = 1, "content_type_id" = 21, "object_id" = 3, "created" = E'2011-11-11 22:31:08.022148' WHERE "notification_notice"."id" = 14

Так выглядит мой стол. Созданный столбец имеет временную метку, в которой для своего часового пояса указано «-08». Postgres должен проверять часовой пояс моих системных часов, чтобы найти часовой пояс.

my_db=# select * from notification_notice limit 1;
 id | sender_id | group_id | notice_type_id | content_type_id | object_id |           created            | last_interaction_time 
----+-----------+----------+----------------+-----------------+-----------+------------------------------+-----------------------
  1 |           |        3 |             21 |              53 |         6 | 2011-11-11 14:31:02.98882-08 | 
(1 row)

Вопросы:
Разве в Django нет политики отключения часовых поясов?
Почему серверная часть Postgres использует часовые пояса для models.DateTimeField? Это требуется для Postgres?
Есть ли способ заставить Django создавать столбцы с метками времени в Postgres, которые не используют часовой пояс?

5
задан hekevintran 12 November 2011 в 02:54
поделиться