database - 新表无法识别

标签 database web2py

我已向我的 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'

我该如何解决这个问题?

最佳答案

必须先定义“users”表:

db.Field('user', db.users)

否则,db.users 在上面代码中引用时尚不存在。另一种选择是:

db.Field('user', 'reference users')

它不需要定义“users”表。

关于database - 新表无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9451180/

相关文章:

python - web2py 计划任务重新创建(重置)数据库

html - web2py 站点没有加载通常的 css,只是普通丑陋的 html

Web2py 中的 Javascript 轮询

python - 如何清除缓存的查询?

python - $.ajax 函数 : send json data : parse at serverside function

python - 我如何将 Heroku 数据库转移到我的本地计算机?我有一个 Django 应用程序(不是 Rails)

mysql - SQL Dump导入报错原因及解决办法

sql - 如何在 MS-SQL 中对同一列的不同值使用计数函数?

sql - Postgres : Find position of a specific row within a resultset?

database - Laravel:如果 session 数据库不可用,则优雅地回退