【问题标题】:Django Password Field Not Rendering with Bootstrap AttributesDjango 密码字段不使用引导属性呈现
【发布时间】:2020-12-11 12:12:26
【问题描述】:

我试图在我的 Django Accounts 应用程序的注册中设置密码字段的样式。

'password1': forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password',
                                                'required': 'required'}, ),
        'password2': forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Confirm password',
                                                'required': 'required'}, ),

我的视图呈现到下面代码中的 register.html

<div class="col-12 mt-4">
        {{ form.password1 }}
    </div>
    <div class="col-12 mt-4">
        {{ form.password2 }}
    </div>
</div>

但密码字段的结果与其他字段的样式不同。渲染出来的注册页面如下图 rendered register.html page

提供以下输出的解决方法是什么 expected output

【问题讨论】:

    标签: python django django-forms django-templates


    【解决方案1】:

    我会这样建议:​​请试试这个。

    方法一

    password1 = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password','required': 'required'}, ))
    password2 = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Confirm password','required': 'required'}, ))
    

    方法二

    使用构造函数(减少代码)

    def __init__(self, *args, **kwargs):
        super(SignUpForm, self).__init__(*args, **kwargs)
        self.fields['username'].widget.attrs = {'class': 'form-control', 'placeholder': 'Password','required': 'required'}
        self.fields['password1'].widget.attrs = {'class': 'form-control', 'placeholder': 'Confirm password','required': 'required'}
        self.fields['password2'].widget.attrs = {'class': 'form-control', 'placeholder': 'Confirm password','required': 'required'}
    

    【讨论】:

    • 我能够使用构造函数修复它,结果是 django 的默认字段,即用户名、密码 1 和密码 2 小部件可以在构造函数中增强..这是代码
    【解决方案2】:

    经过研究,事实证明默认的 Django 注册字段,即用户名、密码 1 和密码 2 小部件可以在构造函数中进行调整,这是工作代码

        def __init__(self, *args, **kwargs):
        super(SignUpForm, self).__init__(*args, **kwargs)
    
        self.fields['username'].widget.attrs['class'] = 'form-control'
        self.fields['username'].widget.attrs['placeholder'] = 'Username'
        self.fields['password1'].widget.attrs['class'] = 'form-control'
        self.fields['password1'].widget.attrs['placeholder'] = 'Password'
        self.fields['password2'].widget.attrs['class'] = 'form-control'
        self.fields['password2'].widget.attrs['placeholder'] = 'Confirm password'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      相关资源
      最近更新 更多