Будет ли правильным, если собственность изменит данные?
@property
def check_too_much_sent_confirmation(self):
if self._count_of_hashes_sent >= 3:
if UTC.localize(datetime.now()) <= self.updated_at + timedelta(minutes=10):
return True
else:
self.reset_count_of_hashes_sent()
return False
def reset_count_of_hashes_sent(self, commit=False):
self._count_of_hashes_sent = 0
self._save_if_commit(commit)
В приведенном выше коде check_too_much_sent_confirmation проверяет, может ли пользователь отправить код подтверждения еще раз, ему дается 3 попытки каждые 10 минут.
self.reset_count_of_hashes_sent()
Строка выше сбрасывает количество попыток.
Правильно ли, что метод вызывается из функции свойства, которая изменяет данные в базе данных? Или лучше вызывать эту функцию отдельно?
Свойство должно просто возвращать данные и не изменять состояние модели/базы данных.
Создайте метод, который может проверять и увеличивать одновременно.
Или изменить свойство на просто check и повторно использовать свойство в новом методе для проверки & increase.