Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2010 10:31:46

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

Поле в медели, равное разности дат

Всем привет! Есть модель:

from datetime import timedelta
class MyModel (models.Model):
name = models.CharField()
first_date = models.DateTimeField ()
second_date = models.DateTimeField ()

def simple_def (self):
max_sec = 432000
res_date = self.second_date - self.first_date
if (timedelta (seconds = max_sec) > res_date):
ret_val = 1
else:
ret_val = 0
return ret_val
Суть в следующем: при обращении к методу simple_def получать единицу, если разница дат более 5 суток (432000 секунд). Хотелось бы иметь возможность сортировать по этому полю и делать выборку по нему. Можно ли это как-то организовать через MyModel, чтобы при обращении
MyModel.objects.filter (simple_def=1)
, получать нужные мне поля?



Отредактировано (Янв. 15, 2010 12:25:41)

Офлайн

#2 Янв. 13, 2010 14:51:33

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Поле в медели, равное разности дат

только сделав метод класса модели полем базы данных, а нужные вычисления делать в save()
и почитай про http://docs.python.org/library/datetime.html#datetime.timedelta В)

Офлайн

#3 Янв. 13, 2010 16:15:05

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

Поле в медели, равное разности дат

slav0nic
только сделав метод класса модели полем базы данных, а нужные вычисления делать в save()
Тогда, если я захочу изменить значение max_sec, то для старых записей поле в БД не изменится. Прийдется реализовывать отдельно фильтр и выборку.
slav0nic
и почитай про http://docs.python.org/library/datetime … .timedelta В)
Сори, упустил, уже поправил.



Отредактировано (Янв. 13, 2010 16:15:27)

Офлайн

#4 Янв. 13, 2010 16:54:59

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Поле в медели, равное разности дат

well
ну вынеси в settings

Офлайн

#5 Янв. 13, 2010 17:33:55

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

Поле в медели, равное разности дат

slav0nic
well
ну вынеси в settings
Так и сделаю, спасибо за помощь.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version