我有一个项目,其中我需要弹出一个未经身份验证用户的模式窗口
此模式将允许直接登录或创建帐户
因此,它将包含两种形式:
django.contrib.auth.forms.AuthenticationFormregistration.forms.RegistrationForm
以下是我对两种形式的看法:
def ajax\u注册(请求):
obj={
“登录表单”:AuthenticationForm(),
“注册表单”:注册表单(),
}
返回渲染(请求'common/ajax_registration.html',obj)
和我的模板显示的形式选项卡
<;ul class=“导航标签”>;
<;李>&书信电报;a href=”“data toggle=“tab”>;{%trans'登录'%}</a></李>;
<;李>&书信电报;a href=”“data toggle=“tab”>;{%trans'注册“%}</a></李>;
</ul>;
<;div class=“选项卡内容”>;
<;div class=“tab pane active”id=“tab1”>;
{{login_form | bootstrap}}
</部门>;
<;div class=“tab pane”id=“tab2”>;
{{注册|自举}
</部门>;
</部门>;
问题是:由于我使用ajax显示此模式,如何验证所选表单,最好使用已经编写的django注册寄存器&django.contrib.auth登录views
除了Maddog的答案之外,还需要一些javascript将表单提交回呈现表单的URL。使用jquery,它可能类似于:
$('form')。提交(函数(e){
e、 预防默认值();
变量形式=$(e.target);
$.ajax({
url:“{%url您的\u注册\u url%}”,
键入:“post”,
数据:account_form.serialize(),
错误:函数(xhr,ajaxOptions,thrownError){alert(thrownError);},
成功:函数(){}
})
})
您不需要使用表单提交元素,您可以使用带有$()的任何元素。当然,单击()