Django将占位符文本添加到表单字段

2024-09-27 09:27:37 发布

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

在Django中,我有下面的代码,在HTML页面上创建用户名和密码表单:

<div class="control-group">
    {{ form.username }}
</div>
<div class="control-group">
    {{ form.password }}
</div>

我想在字段中添加“Username”和“Password”占位符文本,然后当用户单击字段时,单词dissapes就会消失。实现这一目标的最佳方法是什么?


Tags: django代码divformhtmlgroupusernamepassword
3条回答

如果它可能对某人有帮助,我想使用模型的help_text属性作为占位符。根据阿齐米尼亚的回答,这是最简单的方法:

class MyForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        for _, value in self.fields.items():
            value.widget.attrs['placeholder'] = value.help_text

    class Meta:
        model = models.MyModel
        fields = (...)

我希望你的项目中有一个forms.py文件。创建表单时,可以使用以下选项设置字段的占位符:

username = forms.CharField(label='username', 
                widget=forms.TextInput(attrs={'placeholder': 'username'}))

如果项目中有ModelForm,则可以实现为:

 class MyForm(forms.ModelForm):
    class Meta:
        model = User
        widgets = {
            'username': forms.TextInput(attrs={'placeholder': 'username'}),
             ..........
        }

必须使用placeholder属性

class LoginForm(forms.Form):
    username = forms.CharField(label='username')
    password = forms.CharField(label='password')


    def __init__(self, *args, **kwargs):
        super(LoginForm, self).__init__(*args, **kwargs)
        self.fields['username'].widget.attrs['placeholder'] = 'username'
        self.fields['password '].widget.attrs['placeholder'] = 'password'

或者

class LoginForm(forms.Form):
    username = forms.CharField(label='username',widget=forms.TextInput(attrs={'placeholder':'username'}))
    password = forms.CharField(label='password',widget=forms.PasswordInput(attrs={'placeholder':'password'}))

相关问题 更多 >

    热门问题