You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django注册表单密码字段重复显示问题求助

问题原因

UserCreationForm是Django内置的表单类,它默认已经包含password1(密码输入)和password2(密码确认)两个字段,用于处理密码设置与校验逻辑。

你在RegisterForm的Meta.fields中额外添加了password字段,这会把User模型本身的password字段也渲染到表单里,再加上UserCreationForm自带的两个密码字段,就出现了三个密码输入框。

解决方法

修改RegisterForm的Meta类,移除fields中的password字段:

class RegisterForm(UserCreationForm):
    class Meta:
        model = User
        fields = ["username", "email"]  # 移除password字段

如果需要给密码字段添加统一样式(比如和其他字段一致的form-control类),可以在__init__方法中处理:

class RegisterForm(UserCreationForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        for field in self.fields.values():
            field.widget.attrs['class'] = 'form-control'
            field.widget.attrs['placeholder'] = field.label

    class Meta:
        model = User
        fields = ["username", "email"]

修改后表单会渲染username、email、password1、password2四个字段,其中password1和password2就是你需要的密码与确认密码输入框,不会再出现多余的密码字段。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:51:34