Web2py自定义登录表单没有提交?

时间:2017-07-24 15:51:44

标签: javascript python html forms web2py

我正在尝试为web2py自定义我的登录表单,但是当我添加字段和提交按钮时,它没有做任何事情。表单中的代码如下所示:

{{include 'web2py_ajax.html'}}
<h2>
{{=T('Sign Up') if request.args(0) == 'register' else T('Log In') if 
request.args(0) == 'login' else T(request.args(0).replace('_',' 
').title())}}
</h2>

<div class="container">
    <div class="row">
        <div id="web2py_user_form" class="col-lg-6">
        {{
=form.custom.begin
        if request.args(0)=='login':
            if not 'register' in auth.settings.actions_disabled:
                form.add_button(T('Sign Up'),URL(args='register', vars=
{'_next': request.vars._next} if request.vars._next else 
None),_class='btn btn-default')
            pass
            if not 'request_reset_password' in 
auth.settings.actions_disabled:
                form.add_button(T('Lost 
Password'),URL(args='request_reset_password'),_class='btn btn-default')
            pass
=form.custom.widget.email
=form.custom.widget.password
=form.custom.submit
   =form.custom.end
        pass

        }}
        </div>
    </div>
</div>

此时我已经尝试了很多东西,但登录按钮仍然没有提交字段,还有其他我应该做的吗?

编辑:所以当我尝试在python之间添加HTML时,我发现我的代码无效。我得到一个错误,说我在视图中缺少“通过”。这是我想要实现的代码:     {{= form.custom.begin}}

        {{
        if request.args(0)=='login':
                if not 'register' in auth.settings.actions_disabled:
                form.add_button(T('Sign Up'),URL(args='register', vars=
{'_next': request.vars._next} if request.vars._next else 
None),_class='btn btn-default')
            pass
            if not 'request_reset_password' in . 
auth.settings.actions_disabled:
                form.add_button(T('Lost 
Password'),URL(args='request_reset_password'),_class='btn btn-default')
            pass
        }}
Email Address:
    {{=form.custom.widget.email}}

Password:
    {{=form.custom.widget.password}}
    {{=form.custom.submit
    =form.custom.end

    pass}}

这会抛出一个错误,说我错过了“传递”,但是当我从代码中删除html“Email:”和“Password:”时,它只是python表单有效。如何在此代码中使html工作?

1 个答案:

答案 0 :(得分:0)

这对我有用,虽然我不确定你正在努力的定制。有了这个,我认为自定义表单有效地覆盖了大部分默认表单内容,例如你只剩下登录选项。 - 看看 - 复制并粘贴 - 进行一些进一步的调整,如果你需要,你应该能够得到休息。

注意:
我在哪里放置了form.custom.begin
我已经移动了你的一个&#39;传递&#39;陈述 我重新格式化了form.custom.end - 见大括号 (我认为就是这样)

不确定所有这些都是必需的,或者这是否严格正确但它可能会让你超越驼峰并允许你继续...抱歉格式看起来很可怕 - 这是我在stackoverflow上的第一个答案。祝你好运!

{{extend 'layout.html'}}

<h2>
{{=T('Sign Up') if request.args(0) == 'register' else T('Log In') if   request.args(0) == 'login' else T(request.args(0).replace('_',' ').title())}}
</h2>

<div class="container">
    <div class="row">
        <div id="web2py_user_form" class="col-lg-6">
        {{=form.custom.begin}} 
        {{
        if request.args(0)=='login':
            if not 'register' in auth.settings.actions_disabled:
                form.add_button(T('Sign Up'),URL(args='register', vars={'_next': request.vars._next} if request.vars._next else None),_class='btn btn-default')
            pass
            if not 'request_reset_password' in 

auth.settings.actions_disabled:
                    form.add_button(T('Lost  Password'),URL(args='request_reset_password'),_class='btn btn-default')
            pass
        pass
        }}

        Email Address:
            {{=form.custom.widget.email}}

        Password:
            {{=form.custom.widget.password}}
            {{=form.custom.submit}}

        {{=form.custom.end}}
        </div>
    </div>
</div>


{{block page_js}}
<script>
    jQuery("#web2py_user_form input:visible:enabled:first").focus();
{{if request.args(0)=='register':}}
    web2py_validate_entropy(jQuery('#auth_user_password'),100);
{{elif request.args(0)=='change_password':}}
    web2py_validate_entropy(jQuery('#no_table_new_password'),100);
{{pass}}
</script>
{{end page_js}}