Django:加载带有表单的alluath模板到div加载其他东西

时间:2018-04-22 00:22:08

标签: jquery django forms django-templates django-allauth

我有一个简单帐户管理的网站网站。我有几个div,我使用jQuery load()函数加载一些其他东西(其他div,django形式和类似的东西),一切都很好。我想使用django allauth应用程序进行帐户管理,现在我正在尝试添加将password_change模板加载到某个div的功能。这个password_change.html模板如下所示:

<form method="POST" action="accounts/password/change/" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit" />
</form>

这是我试图加载它的模板

<div>
    <div>
        <div onclick="$('#item').load('accounts/password/change');">Change password</button>
    </div>

    <div id="item"></div>
</div>

在clik on button load performes上,而不是密码更改表单,我看到一些词典:

{"form": {"fields": {"oldpassword": {"widget": {"attrs": {"placeholder": "Current Password"}}, "value": null, "errors": [], "label": "Current Password", "help_text": ""}, "password1": {"widget": {"attrs": {"placeholder": "New Password"}}, "value": null, "errors": [], "label": "New Password", "help_text": ""}, "password2": {"widget": {"attrs": {"placeholder": "New Password (again)"}}, "value": null, "errors": [], "label": "New Password (again)", "help_text": ""}}, "field_order": ["oldpassword", "password1", "password2"], "errors": []}, "html": "\n \n  
Current Password: 
\"Current

\n
New password: 
\"New

\n
New password (again): 
\"New

\n  
\"Submit\"
\n
"} 

我认为它是传递给模板的纯Django对象,但我不知道为什么。当我在我的webbrowser中打开账号/密码/更改/时,它正常显示。

我不确定它是否存在django,allauth或jQuery问题。我会非常感谢任何提示。

1 个答案:

答案 0 :(得分:0)

$.load()会触发ajax请求,这意味着django-allauth会响应JSON响应。

如果您想在此处嵌入密码更改表单,可以执行以下两项操作之一:

  1. 只需使用iframe:

                 

    <div id="item">
        <iframe src="accounts/password/change/"></iframe>
    </div>
    

  2. 为JSON响应中的字段构建并绑定自定义表单