Форум сайта python.su
0
Здравствуйте,
Есть в джанго форма, там есть поле даты, которая заполняется в некоторых представлениях через datetime.date.today() на сегодняшнюю дату. Но при смене системной даты (банально новый день) дата остается такой каким был “сегодня” на момент запуска сервера (что для тестового сервиса, что для апачи). Подскажите как заставлять сменить дату без перезапуска сервиса.
Заранее благодарен.
Отредактировано (Авг. 27, 2010 02:04:20)
Офлайн
2
Покажите код.
Офлайн
0
forms.py
...
class AddObj(forms.Form):
date_begin = forms.DateField(input_formats=('%d-%m-%Y'))
...
...
def add_obj(request):
form = AddObj(initial={'date_begin':datetime.date.today().strftime('%d-%m-%Y')})
...
Офлайн
0
Попробуй так дату устанавливать:
import datetime
class DateTest(forms.Form):
in_date=forms.DateTimeField(initial=datetime.datetime.now() )
Отредактировано (Авг. 28, 2010 16:13:53)
Офлайн
0
romankrvНу во первых, мне надо добавлять не в initial, а в views, так как эта же форма используется не только в этом представлении, и даты могут ставится разные.
Попробуй так дату устанавливать:import datetime
class DateTest(forms.Form):
in_date=forms.DateTimeField(initial=datetime.datetime.now() )
Офлайн
0
Ну, просто надо в initial указывать вызываемый объект. Тоесть не datetime.datetime.now(), а datetime.datetime.now.
Надеюсь поможет.
Офлайн
0
vaxXxaНемного не понял вас, можно поподробнее? datetime.datetime.now - это метод, а мне надо значение получить.
Ну, просто надо в initial указывать вызываемый объект. То есть не datetime.datetime.now(), а datetime.datetime.now.
Надеюсь поможет.
Отредактировано (Авг. 29, 2010 03:13:20)
Офлайн
0
я имею ввиду, что если вы используете datetime.datetime.now() в моделях или формах, скажем, то соответственно метод вызывается один раз - при запуске скрипта.. надо перезагружать сервер, чтобы опять запустился скрипт. На примере модели:
class MyModel(models.Model):
timestamp1 = models.DateTimeField(_('Дата'), default=datetime.datetime.now())
timestamp2 = models.DateTimeField(_('Дата'), default=datetime.datetime.now)
Офлайн
0
vaxXxaХм, интересно, честно говоря не знал что можно засунунть метод туда, а не значение. Попробую. Большое спасибо.
я имею ввиду, что если вы используете datetime.datetime.now() в моделях или формах, скажем, то соответственно метод вызывается один раз - при запуске скрипта.. надо перезагружать сервер, чтобы опять запустился скрипт. На примере модели:В первом случае дата обновится только при запуске скрипта, во втором случае всегда при обращении к методу.class MyModel(models.Model):
timestamp1 = models.DateTimeField(_('Дата'), default=datetime.datetime.now())
timestamp2 = models.DateTimeField(_('Дата'), default=datetime.datetime.now)
Знаю, что немножко отошел от темы, но думаю Вам поможет хоть как-то.
Офлайн
0
Вообщем потестил сейчас. И вариант как я написал в самом начале сам - работает на отлично, то есть меняем дату на системе, обновляем страницу - все красиво меняется. Вот теперь сижу и думаю что не так. Завтра прийду на работу и буду смотреть что не так там. Что то у меня начинают появляться подозрения что дело совсем не в today().
Офлайн