我想创建一个允许用户在表格表示中存储信息的模型。我想要实现的主要目标是允许手动更改表,例如删除/添加列,而无需编辑代码。
我无法找到如何为此目的创建一个优雅的模型。你能帮忙吗?
答案 0 :(得分:0)
你不应该制作某种即时表改变系统。这听起来像是一条疯狂的道路......相反,您可以根据需要为数据类型建模表布局。
例如:
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