所以我想并排创建两个注册表单。一个用于用户,另一个用于员工。因此,索引页面基本上会有"如果您是用户,请单击此处。和"如果您是员工,请点击此处"。它将重定向到适当的注册页面。我希望用户注册就像内置的web2py注册一样。对于员工注册,我想要以下字段:
我是web2py的新手,所以不确定如何实现这一点。请问有人可以告诉我如何为此创建registration.py模型?此外,我希望索引适当地重定向到这两个链接:
[app]/user/register
[app]/employee/register
我的控制器文件会是什么样子?我是否需要为用户和员工提供单独的控制器?
答案 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}}