0
我是新的在web2py和我掙扎着它web2py sqlform錯誤
我想打包註冊和登錄的東西。在模型中,我有以下代碼,我在CONTROLER所以現在創建TABEL爲新用戶
usersdb = DAL('postgres://postgres:[email protected]/'+ request.vars['school'], migrate=True)
auth = Auth(usersdb, hmac_key=Auth.get_or_create_key())
usersdb.define_table(
'users',
Field('first_name', length=128, default=''),
Field('last_name', length=128, default=''),
Field('email', length=128, default='', unique=True),
Field('address', length=256, default=''),
Field('postcode', length=128, default=''),
Field('city', length=128, default=''),
Field('password', 'password', length=512, readable=False, label='Password'),
Field('registration_key', length=512, writable=False, readable=False, default=''),
Field('reset_password_key', length=512, writable=False, readable=False, default=''),
Field('registration_id', length=512, writable=False, readable=False, default=''),
format='%(first_name)s %(last_name)s')
我有以下代碼:
usersdb = DAL('postgres://postgres:[email protected]/'+ request.vars['school'], migrate=True)
auth = Auth(usersdb, hmac_key=Auth.get_or_create_key())
auth.settings.registration_requires_approval = True
form = SQLFORM(usersdb.users)
if form.process(session=None, formname='test').accepted:
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill the form'
# Note: no form instance is passed to the view
#set sample validator (do not allow empty nor duplicate names)
return dict(form=form,config=config)
誤差以SQLFORM(usersdb.users)loged。 'users'
我不知道這些東西是如何工作的(將數據庫連接到控制器)。我正在盜用smb編寫的代碼。其他。
謝謝你的任何建議或簡短的解釋。
再見
但是,作爲回報,我該如何獲得表格呢?我猜SQLFORM我這樣做,但如果我刪除userdb,我收到一個錯誤 – Yebach
如果你真的已經在模型文件(即/ models文件夾中的文件)中定義'usersdb',那麼它將全局可用任何控制器。如果不是,那麼你沒有在模型文件中正確定義它。你會得到什麼錯誤? – Anthony
所以我在model/db.py auth = Auth(db,hmac_key = Auth.get_or_create_key())中創建了一個auth數據庫auth.define_tables()並且在控制器中我只有函數user return dict(form = auth()) 。我從web2py的樣本複製而來。我收到一個錯誤NameError:未定義全局名稱'auth'。我有幾乎相同的代碼,以web2py登錄的示例頁面和註冊 – Yebach