Изменение формата поля в зависимости от другого поля в той же модели

Используя Django, я пытаюсь изменить формат поля в зависимости от другого поля в той же модели.

У меня есть группа людей, которые предоставляют мне данные, которые могут быть в двух различных форматах: временном или десятичном. Я хотел бы иметь все результаты в одной таблице. Возможно ли это?

Вот что я пробовал в models.py:

class Time_manager(models.Manager):

def get_queryset(self):
    return super().get_queryset().filter(result_format='T')

class Kilo_manager(models.Manager):
    def get_queryset(self):
    return super().get_queryset().filter(result_format='K')


class Guest(models.Model):
   name = models.CharField(max_length=30)
   result_format=models.CharField(max_length=5, default="K")
   result= models.DecimalField(max_digits=6,decimal_places=2)

class Guest_time(Guest):

   objects=Time_manager()

   class Meta:
    proxy = True

def formato_resultado(self):
    self.resultado=models.DurationField()

Но когда я пытаюсь добавить новое время Guest_time, у меня ничего не получается. Я получаю ошибку с предложением ввести десятичные данные.

Есть ли способ сделать это, используя одну и ту же таблицу?

Вернуться на верх