diff --git a/tariff_app/models.py b/tariff_app/models.py index 04aa970..0981537 100644 --- a/tariff_app/models.py +++ b/tariff_app/models.py @@ -5,21 +5,13 @@ from .custom_tariffs import TariffBase, TARIFF_CHOICES from mydefs import MyChoicesAdapter -# Класс похож на адаптер. Предназначен для Django CHOICES чтоб можно было передавать классывместо просто описания поля, -# классы передавать для того чтоб по значению из базы понять какой класс нужно взять для расчёта стоимости тарифа. -class _TariffChoicesAdapter(MyChoicesAdapter): - # На вход принимает кортеж кортежей, вложенный из 2х элементов: кода и класса, как: TARIFF_CHOICES - def __init__(self): - super().__init__(TARIFF_CHOICES) - - class Tariff(models.Model): title = models.CharField(max_length=32) descr = models.CharField(max_length=256) speedIn = models.FloatField(default=0.0) speedOut = models.FloatField(default=0.0) amount = models.FloatField(default=0.0) - calc_type = models.CharField(max_length=2, default=TARIFF_CHOICES[0][0], choices=_TariffChoicesAdapter()) + calc_type = models.CharField(max_length=2, default=TARIFF_CHOICES[0][0], choices=MyChoicesAdapter(TARIFF_CHOICES)) is_admin = models.BooleanField(default=False) # Возвращает потомок класса TariffBase, методы которого дают нужную логику оплаты по тарифу