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

Jar*_*787 3 html python forms django placeholder

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

<div class="control-group">
    {{ form.username }}
</div>
<div class="control-group">
    {{ form.password }}
</div>
Run Code Online (Sandbox Code Playgroud)

我想在字段中添加"用户名"和"密码"占位符文本,然后当用户单击字段时,单词消失.实现这一目标的最佳方法是什么?

azi*_*nia 8

您必须使用占位符属性

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'
Run Code Online (Sandbox Code Playgroud)

要么

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'}))
Run Code Online (Sandbox Code Playgroud)


mar*_*oyo 6

万一它可以帮助某人,我想使用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 = (...)
Run Code Online (Sandbox Code Playgroud)