【问题标题】:Get rid of Help Text in reset password form摆脱重置密码表单中的帮助文本
【发布时间】:2025-12-20 20:55:06
【问题描述】:

Django 通过覆盖默认模板为“忘记密码”提供了一个简单而快速的选项。

其中一些表单带有帮助文本

我从电子邮件中获得重置链接的密码重置确认,我不知道如何摆脱帮助短信。

显示在 password_reset_confirm.html,使用 {{ form.as_p}}

有什么方法可以删除帮助文本,而不需要扩展 forms.py 中的 ResetPasswordForm 以将帮助文本设置为无。

这很复杂,因为这个表单的 url 需要令牌。

我试过这个,但我几乎可以肯定它不会起作用。

forms.py

class ResetPassword(PasswordResetForm):
    class Meta:
        fields = ("new_password1", "new_password2")
        model = get_user_model()
def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields["new_password1"].help_text = None

views.py

class resetpassword(LoginRequiredMixin, generic.UpdateView):

    template_name = "registration/password_change_form.html"
    success_url = reverse_lazy('password_reset_complete')
    form_class = forms.ResetPassword

    def get_object(self, queryset=None):
        return self.request.user

    def get_form_kwargs(self):
        kwargs = super(resetpassword, self).get_form_kwargs()
        kwargs['user'] = kwargs.pop('instance')

        return kwargs

【问题讨论】:

    标签: python django django-forms django-templates


    【解决方案1】:

    您应该能够覆盖Meta 中的help_texts:

    class ResetPassword(PasswordResetForm):
        class Meta:
            fields = ("new_password1", "new_password2")
            model = get_user_model()
            help_texts = {
                'new_password1': '',
                'new_password2': '',
            }
    

    【讨论】: