Подключение к таблице Django на основе типа значения

Мне очень нужна помощь с этой проблемой, потому что я почему-то не могу ее решить. Проблема:

У меня есть таблица Parameter, в которой хранятся параметры. Я хочу хранить значения в разных параметрах, основываясь на типе параметра

Вот модели типов:

class JsonParameter(models.Model):
    value = models.JSONField()


class StringParameter(models.Model):
    value = models.CharField(max_length=100)


class DateParameter(models.Model):
    value = models.DateField()

И у меня есть параметрическая модель:

class Parameter(TimeStampedModel):
    name = models.CharField(max_length=64)
    is_mandatory = models.BooleanField(default=True)
    value = SomekindOfMagic()

Итак, если я хочу создать некоторые параметры, например, такие

param_1 = Parameter.objects.create(name="name of the param", is_mandatory=True, value="This is a string value")

param_2 = Parameter.objects.create(name="name of the param", is_mandatory=True, value='{"object": "string"}')

param_3 = Parameter.objects.create(name="name of the param", is_mandatory=True, value="2022-03-20")

Значение param_1.value будет сохранено в таблице StringParameter, значение param_2.value будет сохранено в таблице JsonParameter, а значение param_3.value будет сохранено в таблице DateParameter и Parameter.value будет содержать внешний ключ типа object.

Могу ли я использовать общий внешний ключ для этого? Или я должен использовать что-то другое? Есть ли какое-нибудь решение для этого?

Спасибо, ребята :)

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