我在web2py应用程序中添加了一个新表:
db.define_table('users',
db.Field('name', 'string'),
db.Field('password', 'password'),
db.Field('reputation', 'integer', default=0),
db.Field('joined', 'datetime', default=datetime.utcnow())
)
以及引用它的旧表的字段:
db.Field('user', db.users),
但这给了我一个
KeyError
的回溯:Traceback (most recent call last):
File "E:\Programming\Python\web2py\gluon\restricted.py", line 204, in restricted
exec ccode in environment
File "E:/Programming/Python/web2py/applications/vote_up/models/db.py", line 85, in <module>
db.Field('user', db.users),
File "E:\Programming\Python\web2py\gluon\dal.py", line 5119, in __getattr__
return self[key]
File "E:\Programming\Python\web2py\gluon\dal.py", line 5113, in __getitem__
return dict.__getitem__(self, str(key))
KeyError: 'users'
我该怎么解决?
最佳答案
“用户”表必须在以下之前定义:
db.Field('user', db.users)
否则,
db.users
在上面的代码中引用的点上还不存在。另一个选择是:db.Field('user', 'reference users')
不需要定义“users”表。
关于database - 无法识别新表格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9451180/