在Web2py中创建两个单独的注册表单?

时间:2014-05-31 21:51:59

标签: python web2py

所以我想并排创建两个注册表单。一个用于用户,另一个用于员工。因此,索引页面基本上会有"如果您是用户,请单击此处。和"如果您是员工,请点击此处"。它将重定向到适当的注册页面。我希望用户注册就像内置的web2py注册一样。对于员工注册,我想要以下字段:

  1. 名称2.商店名称3.商店类型4.邮政编码
  2. 我是web2py的新手,所以不确定如何实现这一点。请问有人可以告诉我如何为此创建registration.py模型?此外,我希望索引适当地重定向到这两个链接:

    [app]/user/register
    [app]/employee/register
    

    我的控制器文件会是什么样子?我是否需要为用户和员工提供单独的控制器?

1 个答案:

答案 0 :(得分:0)

你的问题不太清楚。您想要并排显示两个表格还是要重定向到相应的注册页面?

假设您选择了问题中描述的第二个选项。我也假设无论出于何种原因,员工和用户与我从你的问题中理解的不一样。

首先在模型中创建员工表:

STORE_TYPE = ['Department store', 'Discount store', 'Warehouse store', 'Mom-And-Pop', 'Boutique']

db.define_table('employee',
                Field('first_name'),
                Field('last_name'),
                Field('store_name'),
                Field('store_type', requires=IS_IN_SET(STORE_TYPE)),
                Field('zip_code'),
                auth.signature)

然后在控制器中询问用户她是员工还是用户:

def index():
    form = SQLFORM.factory(Field('user_or_employee', requires = IS_IN_SET(['user', 'employee']))).process()
    if form.accepted:
        if form.vars.user_or_employee == 'user':
            redirect(URL('user/register'))
        elif form.vars.user_or_employee == 'employee':
            redirect(URL('employee_register'))
    return locals()

如果用户是“用户”,那么您将根据需要将其重定向到用户/注册表。如果他们是'员工',那么将他们重定向到index / employee_register

def employee_register():
    form = SQLFORM(db.employee)
    if form.process().accepted:
        redirect(URL('welcome')) # or whatever function you wish...
    return locals()

从那里你可以自己拿它。

不要忘记创建视图。对于index和default / employee-register.html。在两个视图中,您应该包括您创建的表单,如下所示:

{{extend 'layout.html'}}
<h2>Please Register to Continue</h2>
{{=form}}