Найти - Пользователи
Полная версия: Смена даты
Начало » Django » Смена даты
1
DuoV
Здравствуйте,
Есть в джанго форма, там есть поле даты, которая заполняется в некоторых представлениях через datetime.date.today() на сегодняшнюю дату. Но при смене системной даты (банально новый день) дата остается такой каким был “сегодня” на момент запуска сервера (что для тестового сервиса, что для апачи). Подскажите как заставлять сменить дату без перезапуска сервиса.
Заранее благодарен.
Александр Кошелев
Покажите код.
DuoV
forms.py
...
class AddObj(forms.Form):
date_begin = forms.DateField(input_formats=('%d-%m-%Y'))
...
views.py
...
def add_obj(request):
form = AddObj(initial={'date_begin':datetime.date.today().strftime('%d-%m-%Y')})
...
romankrv
Попробуй так дату устанавливать:
import datetime 
class DateTest(forms.Form):
in_date=forms.DateTimeField(initial=datetime.datetime.now() )
DuoV
romankrv
Попробуй так дату устанавливать:
import datetime 
class DateTest(forms.Form):
in_date=forms.DateTimeField(initial=datetime.datetime.now() )
Ну во первых, мне надо добавлять не в initial, а в views, так как эта же форма используется не только в этом представлении, и даты могут ставится разные.
Во вторых пробывал туда добавлять.
Единственное попробую сменить today на now - может в этом дело.
vaxXxa
Ну, просто надо в initial указывать вызываемый объект. Тоесть не datetime.datetime.now(), а datetime.datetime.now.
Надеюсь поможет.
DuoV
vaxXxa
Ну, просто надо в initial указывать вызываемый объект. То есть не datetime.datetime.now(), а datetime.datetime.now.
Надеюсь поможет.
Немного не понял вас, можно поподробнее? datetime.datetime.now - это метод, а мне надо значение получить.
И мне надо указывать дату в views, а не initial, так как эта форма может использовать разные даты.
vaxXxa
я имею ввиду, что если вы используете datetime.datetime.now() в моделях или формах, скажем, то соответственно метод вызывается один раз - при запуске скрипта.. надо перезагружать сервер, чтобы опять запустился скрипт. На примере модели:
class MyModel(models.Model):
timestamp1 = models.DateTimeField(_('Дата'), default=datetime.datetime.now())
timestamp2 = models.DateTimeField(_('Дата'), default=datetime.datetime.now)
В первом случае дата обновится только при запуске скрипта, во втором случае всегда при обращении к методу.

Знаю, что немножко отошел от темы, но думаю Вам поможет хоть как-то.
DuoV
vaxXxa
я имею ввиду, что если вы используете datetime.datetime.now() в моделях или формах, скажем, то соответственно метод вызывается один раз - при запуске скрипта.. надо перезагружать сервер, чтобы опять запустился скрипт. На примере модели:
class MyModel(models.Model):
timestamp1 = models.DateTimeField(_('Дата'), default=datetime.datetime.now())
timestamp2 = models.DateTimeField(_('Дата'), default=datetime.datetime.now)
В первом случае дата обновится только при запуске скрипта, во втором случае всегда при обращении к методу.

Знаю, что немножко отошел от темы, но думаю Вам поможет хоть как-то.
Хм, интересно, честно говоря не знал что можно засунунть метод туда, а не значение. Попробую. Большое спасибо.
DuoV
Вообщем потестил сейчас. И вариант как я написал в самом начале сам - работает на отлично, то есть меняем дату на системе, обновляем страницу - все красиво меняется. Вот теперь сижу и думаю что не так. Завтра прийду на работу и буду смотреть что не так там. Что то у меня начинают появляться подозрения что дело совсем не в today().
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB