Автоматическое создание полей в Django
Существует ли способ автоматически генерировать новое поле при создании модели с внешним ключом
class Metric(models.Model):
name = CharField(null = True, blank = True, max_length = 200)
abbreviation = CharField(null = True, blank = True, max_length = 10)
def __str__(self):
try:
return self.name
except Exception as e:
return str(e)
class Test(models.Model):
name = CharField(null = True, blank = True, max_length = 200)
metrics = ManyToManyField(Metric, null = True, blank = True)
def __str__(self):
try:
return self.name
except Exception as e:
return str(e)
class TestVariable(models.Model):
independent_variable = ForeignKey(Variable, null = True, blank = True,on_delete = models.CASCADE, related_name = "independent_variables")
dependent_variable = ForeignKey(Variable, null = True, blank = True, on_delete = models.CASCADE, related_name = "dependent_variables")
test = ForeignKey(Test, null = True, blank = True, on_delete = models.CASCADE)
def __str__(self):
try:
return self.name
except Exception as e:
return str(e)
Итак, если я создал новый Metric
, есть ли способ автоматически добавить поле в TestVariable
Например, если я создам поле Metric
для стандартного отклонения, оно автоматически создаст поле в TestVariable
, чтобы принять числовое значение стандартного отклонения.
from django.db import models
from django.contrib.postgres.fields import JSONField
class TestVariable(models.Model):
independent_variable = models.ForeignKey(Variable, null=True, blank=True, on_delete=models.CASCADE, related_name="independent_variables")
dependent_variable = models.ForeignKey(Variable, null=True, blank=True, on_delete=models.CASCADE, related_name="dependent_variables")
test = models.ForeignKey(Test, null=True, blank=True, on_delete=models.CASCADE)
metrics_data = JSONField(default=dict) # This field can store metrics dynamically
def __str__(self):
return self.test.name if self.test.name else 'Unnamed TestVariable'
При создании нового Metric
можно обновить поле metrics_data
в TestVariable