Django показывает дату и время, отличные от системного. - PullRequest
0 голосов
/ 10 октября 2018

Когда я проверяю "datetime.today().date()" в моем views.py, я получаю вчерашнюю дату.

Но когда я проверяю дату из системы Linux с помощью команды "date", я получаю сегодняшнюю дату.Я думаю, что Джанго не обновляет текущую дату.Мне нужно получить текущую дату в представлении, чтобы сделать некоторые сравнения, а также распечатать в представлении.

Я использую Python 2.7 и Django 1.9.

def assistant_page(request, assistant=None):
    notes = AssistantNotes.objects.filter(notedate=datetime.today().date()).order_by("time")
    file_write(datetime.today().date())
    if request.method == 'GET':    
        return render(request, "assistant_page.html", {'generalnotes': notes})

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Джанго использует свой часовой пояс.Вы можете установить его в настройках.Другой способ - использовать pytz lib.у каждого объекта datetime есть метод astimezone.Вы можете легко преобразовать объект даты / времени в другой часовой пояс:

d = datetime.now()
d.astimezone(pytz.timezone('Europe/london'))
0 голосов
/ 10 октября 2018

Измените настройку Time_Zone на свое местоположение -

Как вы сказали, у вас Европа / Лондон .Поэтому добавьте этот параметр в ваш

settings.py

TIME_ZONE = 'Europe/london'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...