我正在使用Google App Engine和Django开发Web应用,但我认为我的问题更普遍。
用户可以创建表格,但表格在数据库中并不是以TABLES的形式表示。这里举个例子:
第一个表格: 表格名称:__________ 第一列名称:__________ 第二列名称:__________ ...
列数不固定,但有一个最大值(例如100)。每列的类型都相同。
第二个表格(选择特定表格后,用户可以填写表格): 列名1:_____________ 列名2:_____________ ....
我正在使用以下解决方案,但它是错误的:
class Table(db.Model):
name = db.StringProperty(required=True)
class Column(db.Model):
name = db.StringProperty(required=True)
number = db.IntegerProperty()
table = db.ReferenceProperty(table, collection_name="columns")
class Value(db.Model):
time = db.TimeProperty()
column = db.ReferenceProperty(Column, collection_name="values")
当我想要列出一个表格时,我获取其列,并从每个列中获取其值:
data = []
for column in data.columns:
column_data = []
for value in column.values:
column_data.append(value.time)
data.append(column_data)
data = zip(*data)
我认为问题在于数值的顺序,因为一个列的顺序并不同于其他列。我正在等待这个错误(但至今我从未见过):
所需表格: 实际得到的表格: a z c a e c d e f d h f g h i g z i更好的解决方案?也许使用ListProperty?