Я пытаюсь использовать имеющийся CascadingSelect здесь , но получаю <type 'exceptions.KeyError'>
.Мои модели, как показано ниже:
# -*- coding: utf-8 -*-
db.define_table('bank_master',
Field('name'),
format='%(name)s'
)
db.define_table('bank_branch',
Field('bank', db.bank_master),
Field('name'),
format='%(name)s'
)
db.define_table('case_master',
Field('case_number'),
Field('bank_branch', db.bank_branch)
)
if db(db.bank_master.id>0).count() == 0:
db.bank_master.truncate()
db.bank_branch.truncate()
db.bank_master.insert(name='State Bank')
db.bank_master.insert(name='Central Bank')
db.bank_master.insert(name='Canara Bank')
db.bank_branch.insert(name='Austin',bank=1)
db.bank_branch.insert(name='Dallas',bank=1)
db.bank_branch.insert(name='Chicago',bank=2)
db.bank_branch.insert(name='Washington',bank=2)
db.bank_branch.insert(name='Florida',bank=3)
db.bank_branch.insert(name='Delhi',bank=3)
cascade = CascadingSelect(db.bank_master,db.bank_branch)
db.case_master.bank_branch.widget = cascade.widget
Это контроллер:
def index():
form = SQLFORM(db.case_master)
return dict(form=form)
И это вид index.html
:
{{extend 'layout.html'}}
<h1>Test for Cascade</h1>
<h3>{{=form}}</h3>
Этоошибка:
Traceback (most recent call last):
File "C:\web2py\gluon\restricted.py", line 219, in restricted
exec(ccode, environment)
File "C:/web2py/applications/cascade_3/controllers/default.py", line 64, in <module>
File "C:\web2py\gluon\globals.py", line 419, in <lambda>
self._caller = lambda f: f()
File "C:/web2py/applications/cascade_3/controllers/default.py", line 9, in index
form = SQLFORM(db.case_master)
File "C:\web2py\gluon\sqlhtml.py", line 1505, in __init__
inp = field.widget(field, default)
File "C:/web2py/applications/cascade_3/models/cascade_widget.py", line 26, in widget
for opt in options]
File "C:\web2py\gluon\packages\dal\pydal\objects.py", line 96, in __getitem__
raise KeyError
KeyError
Виджет CascadingSelect отлично работает, когда модели, используемые mfreeze , настраиваются путем добавления фиктивных полей, но каким-то образом, когда я использую свои собственные модели, как указано выше, KeyError
всплывает.Кто-нибудь может помочь найти мою ошибку?