我想创建一个模型,允许用户在表表示中存储信息。我想要实现的主要目标是允许手动更改表的可能性,例如删除/添加列,而无需编辑代码。
我不知道如何为此目的创建一个优雅的模型。能否请你帮忙?
您不应该制作某种即时更改表的系统。这听起来像是一条疯狂的道路......相反,您可以使用您需要的数据类型对表格布局进行建模。
例如:
INTEGER, FLOAT, TEXT = range(3)
class Table(models.Model):
columns = models.ManyToManyField('TableColumn')
class TableColumn(models.Model):
name = ...
data_type = models.SmallIntegerField(choices=[(INTEGER, 'Integer'), ...])
class TableRow(models.Model):
order = ...
column = models.ForeignKey('TableColumn')
value_float = ...
value_text = ...
value_integer = ...
def get_value(self):
if self.column.data_type == INTEGER:
return self.value_integer