使用Django表单模板

2024-04-18 23:29:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用模板(简单的一个)重置密码使用Django形式和模板。使用的文件如下:

forms.py

from django import forms
from django.contrib.auth import get_user_model

User = get_user_model()


class ResetPasswordForm(forms.Form):
    new_password = forms.CharField(
        label='New password',
        widget=forms.PasswordInput(render_value=False),
    )
    confirm_new_password = forms.CharField(
        label='Confirm New password',
        widget=forms.PasswordInput(render_value=False),
    )

class Meta:
    model = User
    fields = ('password')

def clean(self):
    password = self.cleaned_data['new_password']
    confirm_password = self.cleaned_data['confirm_new_password']
    if password != confirm_password:
        raise forms.ValidationError(u'Passwords are not equal')
    return self.cleaned_data

reset_password.html

<html>
    <head>
        <title>Reset Password</title>
    </head>
    <body>
        <form id="reset_password_form" method="post">
            {% csrf_token %}
            {{ reset_password_form.as_p }}
            <input type="submit" name="submit" value="Reset Password" />
        </form>
    </body>
</html>

views.py我调用这个页面

return render(request, "reset_password.html",
              {'form': reset_password_form})

并且输出只显示一个按钮Reset Password,其他两个密码字段不显示。有人能指出任何错误或方法吗?你知道吗


Tags: selfformnewdatamodelvaluehtmlforms
1条回答
网友
1楼 · 发布于 2024-04-18 23:29:05

您正在变量form中传递reset_password_form,以便在模板上呈现

改变

{{ reset_password_form.as_p }}

{{ form.as_p}}

{'form': reset_password_form}更改为{'reset_password_form': reset_password_form}

相关问题 更多 >