2017-05-23 87 views
1

在Django中我有下面的代碼是在HTML頁面中創建用戶名和密碼的形式:Django中添加佔位符文本,以形成場

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

我要添加「用戶名」和「密碼」佔位符文本在字段中,然後當用戶點擊字段消失字。達到此目的的最佳方法是什麼?

+1

的[?我如何添加在Django的一個CharField的佔位符(可能的複製https://stackoverflow.com/questions/ 4101258/how-do-i-add-a-placeholder-on-a-charfield-in-django) – doru

回答

4

必須使用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'})) 
+0

所以我把它放在我的forms.py中。我的views.py中需要什麼? – Jaron787

+0

@ Jaron787對於佔位符不需要查看特殊的 – aziminia

2

我希望你的項目中有一個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'}), 
      .......... 
     } 
1

如果它可以幫助某人,我想使用模型的help_text屬性作爲佔位符。這是我能弄明白最簡單的方法,基於aziminia的回答是:

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 = (...)