当前位置: 首页 > 知识库问答 >
问题:

Django密码字段占位符

范金鑫
2023-03-14

我尝试启用占位符在我的注册表单与4个字段:电话,电子邮件,密码1,密码2。对于前两个字段都正确,但对于密码字段它不工作。

形式。派克

from django import forms
from django.contrib.auth.forms import UserCreationForm
from customuser.models import User
from django.forms import TextInput,EmailInput,PasswordInput

class SignUpForm(UserCreationForm):    


    class Meta:
        model = User
        fields = ('phone', 'email', 'password1', 'password2', 'is_client','is_partner')
        widgets = {
            'email': EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email adress'}),
            'phone': TextInput(attrs={'class': 'form-control', 'placeholder': 'Phone number  +79011234567'}),
            'password1': PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password from numbers and letters of the Latin alphabet'}),
            'password2': PasswordInput(attrs={'class': 'form-control', 'placeholder': '
Password confirmation'}),

        }

共有3个答案

李鸿
2023-03-14

我测试了@Alasdair的解决方案,并以这种方式为我工作:

from django import forms
from django.contrib import auth
from django.contrib.auth.forms import UserCreationForm
from django.utils.translation import ugettext_lazy as _


class RegistrationForm(UserCreationForm):
    first_name = forms.CharField(label=_("First name"), widget=forms.TextInput(attrs={'placeholder': _("First name")}))
    email = forms.EmailField(label=_("Email"), widget=forms.TextInput(attrs={'placeholder': _("Email")}))

    class Meta(UserCreationForm.Meta):
        model = auth.get_user_model()
        fields = [
            'first_name',
            'email',
            'password1',
            'password2'
        ]

    def __init__(self, *args, **kwargs):
        super(InviteRegistrationForm, self).__init__(*args, **kwargs)
        self.fields['password1'].widget = forms.PasswordInput(attrs={'placeholder': _("Password")})
        self.fields['password2'].widget = forms.PasswordInput(attrs={'placeholder': _("Password")})
广晔
2023-03-14

这个代码很好用

class SignUpForm(UserCreationForm):    
    password1 = forms.CharField(max_length=16, widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password from numbers and letters of the Latin alphabet'}))
    password2 = forms.CharField(max_length=16, widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password confirm'}))
    class Meta:
        model = User
        fields = ('phone', 'email', 'password1', 'password2', 'is_client','is_partner')
        widgets = {
            'email': EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email adress'}),
            'phone': TextInput(attrs={'class': 'form-control', 'placeholder': 'Phone number format +79011234567'}),


        }
文鸣
2023-03-14

Meta。widgets选项不适用于表单中声明的字段。参见文档中的注释。在这种情况下,password1password2是在UserCreationForm上声明的(它们不是模型字段),因此不能在小部件中使用它们。

您可以在__init__方法中设置小部件:

class SignUpForm(UserCreationForm):    
    class Meta:
        model = User
        fields = ('phone', 'email', 'is_client', 'is_partner')
        widgets = {
            'email': EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email adress'}),
            'phone': TextInput(attrs={'class': 'form-control', 'placeholder': 'Phone number  +79011234567'}),
    }

    def __init__(self, *args, **kwargs):
        super(SignUpForm, self).__init__(*args, **kwargs)
        self.fields['password1'].widget = PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password from numbers and letters of the Latin alphabet'})
        self.fields['password2'].widget = PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password confirmation'})

 类似资料:
  • 问题内容: 在Django中,我具有以下代码,该代码在HTML页面上创建用户名和密码表单: 我想在该字段中添加“用户名”和“密码”占位符文本,然后在用户单击该字段时消失。实现此目标的最佳方法是什么? 问题答案: 您必须使用占位符属性 要么

  • 问题内容: 我正在尝试创建一个模型,在其中可以存储其他应用程序的用户名和密码。如何在Django中设置密码字段,使其在admin中不是纯文本格式?提前致谢。 问题答案: 正如@mlissner所建议的那样,该模型是一个不错的选择。如果你查看源代码,则会看到该d字段是。 该User模型也有一种set_password方法。 你可以从此方法中获得一些有关创建和保存密码的线索。

  • 问题内容: 我正在尝试使用Swing创建GUI。我的问题是,我有一个文本字段,但我希望它有一个“占位符”(如html)。我在这里和那里读到,可以通过重写文本字段的paint()来完成此操作。 由于生成了我的代码,因此我发现我需要使用“自定义创建代码”来覆盖生成的代码。 这是我在“自定义创建代码”字段中输入的内容 这将产生以下输出 现在,我看到了textField,但其中没有任何内容,也许我需要在某

  • 主要内容:创建密码字段,示例用于密码输入。用户键入的字符通过显示回显字符串被隐藏。 创建密码字段 以下代码使用来自类的默认构造函数创建一个密码字段,然后为密码字段设置提示消息文本。 提示消息在字段中显示为灰色文本,并为用户提供该字段是什么的提示,而不使用标签控件。 类有方法来为控件设置文本字符串。对于密码字段,指定的字符串由回显字符隐藏。默认情况下,回显字符是一个点(或是星号)。 密码字段中的值可以通过方法获取。 示例 密码

  • 问题内容: 如何以html形式居中输入字段的占位符对齐方式? 我正在使用以下代码,但是它不起作用: CSS-> HTML-> 问题答案: 如果只想更改占位符样式

  • 我想将占位符添加到类似于HTML5占位符属性的TextField,但我找不到合适的方法。有没有或唯一的方法是实现自己?

  • 本文向大家介绍Safari中的HTML5日期字段和占位符文本,包括了Safari中的HTML5日期字段和占位符文本的使用技巧和注意事项,需要的朋友参考一下 占位符属性不支持输入类型日期上的输入元素。 但是,您可能已经看到它在Safari Web浏览器上有效,因为它不支持日期类型。那将意味着该属性将被忽略,而其余仅是纯文本字段。 因此,以下在Safari桌面上有效- 和HTML-