Как изменить значение логического значения в модели через определенный промежуток времени в django?

#django #django-models

Вопрос:

Я создаю приложение для аренды в Django, которое имеет логическое поле rental_status.

 rental_status = models.BooleanField(default = False)
 
  • rental_status описывает, уже ли продукт арендован или доступен для аренды.
  • значение по умолчанию равно true, т. е. доступно для аренды.
  • Рассмотрим ситуацию, когда человек сдает товар в аренду на x промежуток времени, и мы меняем значение rental_status на false.

Итак, мой вопрос в том, как мы можем изменить rental_status на true через x раз, чтобы его можно было снова арендовать.

(Я понимаю, что мой способ реализации не является хорошим или идеальным, но это только для проекта. Пожалуйста, предложите, есть ли какие-либо другие лучшие реализации)

Ответ №1:

Вы также должны где-то хранить дату, до которой он сдан в аренду, например.

 rented_until = models.DateField("Rented until date", null=True)
 

Если для этого нет других условий rental_status , то вам больше не нужно это поле, и вы можете использовать только это.

Чтобы узнать о незанятых объектах недвижимости, используйте filter() значение даты, которое вас интересует (в конечном итоге также примите во внимание потенциальную null стоимость).:

 # find properties which are available from today further on 
MyModel.objects.filter(rented_until__lt=date.today())