Untitled
unknown
actionscript
3 years ago
1.5 kB
9
Indexable
"""
Есть табличка, в которой храним историю балансов номеров телефонов.
Актуальный баланс номера содержится в записи с is_current=True
При изменении баланса номера мы создаем новую запись, с is_current=True, а у старой записи ставим is_current=False
Нужно написать функцию, которая увеличит баланс номера на определенную величину.
"""
class BalanceHistory(models.Model):
number = models.CharField( verbose_name="Номер")
value = models.DecimalField(verbose_name="Значение")
is_current = models.BooleanField(default=False, verbose_name="True для актуального баланса")
@classmethod
def change_balance(cls, number, value_diff):
q = BalanceHistory.objects.filter(number=number, is_corrent=True)
if q:
q.value += value_diff
"""
Пример:
id number value is_current
3 9091111111 100 False
2 9091111111 200 True
1 9092222222 50 True
"""
BalanceHistory.change_balance(9091111111, 300)
"""
Стало
id number value is_current
4 9091111111 500 True
3 9091111111 100 False
2 9091111111 200 False
1 9092222222 50 True
"""
Editor is loading...