У меня есть мой models.py
class Restaurant(models.Model):
name = models.CharField(max_length=100, blank=False)
opening_time = models.TimeField(blank=False)
closing_time = models.TimeField(blank=False)
def __str__(self):
return self.name
@property
def is_open(self):
return (
True
if self.opening_time <= datetime.now().time() < self.closing_time
else False
)
И мой serializer.py:
class RestaurantSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Restaurant
fields = ('pk', 'name', 'opening_time', 'closing_time')
У меня есть свойство is_open в модели, которое проверяет, открыт ли ресторан.Как я могу запустить логику свойства is_open и обновить это поле, когда объект извлекается с использованием запроса о том, когда пользователь делает запрос GET к API сериализатора.
Прямо сейчас, это работает, когда объектсоздано.Есть ли в модели метод извлечения, в который я могу поместить эту логику?
Я думал об использовании Celery, чтобы проверить, открыт ли он, но это звучит как решение с избыточным убийством.Конечно, я бы хотел, чтобы это изменение повлияло на сериализатор, поэтому я думаю, что это должно быть сделано в модели.