@blackbb

Как в django менять значение поля автоматически через некоторое время?

Не смог правильно сформулировать вопрос. Суть в следующем. Делаю сайт доску объявлений. Есть модель:
class Hotel(models.Model):
    vip = models.BooleanField(default = False, verbose_name = 'VIP размещение')
    pay = models.DateField(verbose_name="День оплаты",default=datetime.now)
    on_off = models.BooleanField(default=False, blank=True, verbose_name="Включить обьявление")
    title = models.CharField(max_length=200, verbose_name="Название")
    slug = models.SlugField(unique=True, verbose_name="URL")
    category = models.ForeignKey(Category, verbose_name='Тип обьявления')
    image = models.ManyToManyField(MyImage,default = '', verbose_name="Фото")
    place = models.ForeignKey(Place, verbose_name='Место расположения')
    content = HTMLField(verbose_name='Информация')

Размещения будут платные. Отель будет размещен после того как будет True поле on. Так вот вопрос, как сделать, чтобы после того как пользователь оплатил сумму, я включил ему это поле и через месяц, неделю или год оно автоматом выключалось?
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 1
Отключать: судя по тому что поле даты оплаты (pay) просто дата, то вам элементарно нужна крон задача, которая будет проходить один раз в сутки по всем обьявлениям и по отключать обьявления у которых истек срок.
Включать: чтобы включать немедленно, после получения оплаты, используйте post_save сигнал. Если включать на следующий день - включите логику в ту же крон задачу по деактивации. только нужно в модель добавить дату начала действия
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы