文本表模型,允许添加/删除列而无需编辑代码

时间:2012-07-16 18:15:57

标签: python django

我想创建一个允许用户在表格表示中存储信息的模型。我想要实现的主要目标是允许手动更改表,例如删除/添加列,而无需编辑代码。

我无法找到如何为此目的创建一个优雅的模型。你能帮忙吗?

1 个答案:

答案 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