Изменение формата поля в зависимости от другого поля в той же модели
Используя 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, у меня ничего не получается. Я получаю ошибку с предложением ввести десятичные данные.
Есть ли способ сделать это, используя одну и ту же таблицу?