在web2py中,制作机票预订表格
简化的数据库视图:
db.define_table('shows', Field('ShowName', 'string'))
db.define_table('reservations',
Field('PersonName','string'),
Field('NbrOfTickets','integer'),
Field('show_id',db.shows))
db.reservations.show_id.requires = IS_IN_DB(db, db.shows.id, '%(ShowName)s')
预订时: 人们需要先填写他们的名字,然后从下拉列表和门票数量中选择一个节目。
这一切都很好,但是: 我希望人们能够预订超过1个节目! 但人们不喜欢不止一次填写他们的名字......
所以问题是:如何制作一个表单(或向导),允许人们只填写一次他们的名字,然后有可能填写他们选择的几个(未知数量未知)表单1显示+门票数量。
如果所有这一切都可以在没有巫师的情况下完成,对我来说也没问题。
感谢您的帮助!
答案 0 :(得分:0)
以下作品:(由Massimo Di Pierro提出建议)
解决方案是预先填充表单,这样如果同一个用户填写表单两次,他就不必重新输入他的名字:
def reserve():
form = SQLFORM(db.reservations)
form.vars.PersonName = session.PersonName
if form.process().accepted:
session.PersonName = form.vars.PersonName
return dict(form=form)