我有一个使用mysql数据库的web2py应用程序。
DAL:
auth = Auth(globals(), db)
auth.settings.extra_fields[auth.settings.table_user_name] = [Field('username')]
post = db.define_table('post',
Field('author_id', 'reference auth_user'),
Field('is_active','boolean',default=False),
Field('heading', 'text',length=80),
Field('category_id', 'reference category'),
Field('teaser', 'text',represent=lambda v, r: XML(v)),
Field('tags', 'text',length=80),
Field('body', 'text',represent=lambda v, r: XML(v)),
Field('post_time', 'datetime',default=request.now),
Field('image_id', 'reference image'),
Field('ext_image_id1', 'reference image'),
Field('ext_image_id2', 'reference image'),
Field('ext_image_id3', 'reference image'),
Field('post_counter', type='integer'),
migrate=False, fake_migrate=True,
format='%(heading)s')
控制器:
rows = db((db.post.is_active==True) & (db.auth_user.id == db.post.author_id) &(db.image.id == db.post.image_id) & (db.category.id == db.post.category_id) ).select(orderby="post.post_time DESC")
在我加入auth_user表之前,上面的示例运行正常。加入后,我现在收到错误“文件”/home/www-data/web2py/applications/site/views/default/index.html“,第109行, NameError:名称'row'未定义“,我不确定原因。如果我编辑数据库管理员中的表,他们似乎正确连接。如果我通过删除删除连接”(db.auth_user.id == db.post .author_id)“它工作正常