web2py 1个表单或向导中的多个记录

时间:2014-01-19 22:23:28

标签: forms web2py wizard

在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显示+门票数量。

如果所有这一切都可以在没有巫师的情况下完成,对我来说也没问题。

感谢您的帮助!

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)