在Django模型中动态更改字段值的数据类型

时间:2018-10-29 22:28:32

标签: python django dynamic-typing

我的应用程序中有以下用例: 有一个表单字段是从后端动态添加的。每个变量可以是:整数,浮点数,文本等等。我的问题是,使用Django模型或一般数据库来实现此概念的最佳方法是什么。 这是我目前的方法:

class FieldValue(models.Model):
text_value = models.CharField(max_length=255, null=True)
long_text_value = models.TextField(null=True)
date_value = models.DateField(null=True)
datetime_value = models.DateField(null=True)
number_int_value = models.IntegerField(null=True)
number_float_value = models.FloatField(null=True)
image_value = models.ImageField(null=True)
boolean_value = models.BooleanField(default=False)

class FormField(models.Model):
name = models.CharField(max_length=50)
type = models.CharField(max_length=30, choices=FIELD_TYPE_OPTIONS)
api = models.CharField(max_length=255, null=True)
value = models.ForeignKey(FieldValue)

我使用了form-field和field-values,但是,这里的问题是,尽管我仅使用其中一个变量(最多),但对于任何form字段对象,我都存储了很多变量。 另一种方法是将它们全部存储为字符串,然后在应用程序层上执行类型检查和验证规则,但我认为这样做不会很有效。有什么想法吗?

0 个答案:

没有答案