Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Обновление устаревших данных в модели [RSS Feed]

#1 Авг. 2, 2015 14:10:42

dezinfo
Зарегистрирован: 2015-05-23
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление устаревших данных в модели

Не могу пока найти решение(без написания отдельного job) в Django для следующей задачи:

Для всех записей с условием (sysdate - creation_date > 60) обновить полу is_active = False

Может можно как то без отдельного job, например в модели функцию написать или …?

Офлайн

#2 Авг. 2, 2015 14:34:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Обновление устаревших данных в модели

Скорее всего вам этого не надо. Можно же сделать так

class MyModel(Model):
    name = CharField()
    creation_date = DateField()
    something = IntegerField()
    @property
    def is_active(self):
         return datetime.dadetime.now() - self.creation_date < datetime.timedelta(seconds=3600)

Но если очень хочется извращений, вызывайте функцию update_active каждый реквест (например из миддлвари), функция пусть сохраняет в БД время последней операции и если текущее время больше сохраненного на, например, пять минут (чтобы не нагружать базу), то апдейтим определенные записи.



Отредактировано FishHook (Авг. 2, 2015 14:34:21)

Офлайн

#3 Авг. 2, 2015 15:37:05

dezinfo
Зарегистрирован: 2015-05-23
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление устаревших данных в модели

FishHook
Скорее всего вам этого не надо. Можно же сделать так

А как свойство прочитать в запросе? Что бы не выводились неактивные записи.

С полями делал так Zip.objects.filter(is_active=False)

Офлайн

#4 Авг. 2, 2015 16:19:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Обновление устаревших данных в модели

Ну и стройте запрос сразу по времени

Zip.objects.filter(creation_date__gt=datetime.datetime.now()-datetime.timedelta(seconds=60))



Отредактировано FishHook (Авг. 2, 2015 16:20:12)

Офлайн

  • Начало
  • » Django
  • » Обновление устаревших данных в модели[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version