Estoy usando formularios de inicio de sesión integrados de django y quiero agregar marcadores de posición al nombre de usuario y la contraseña.
Mi plantilla:
<div class="form-group"> <div class="col-md-12"> {{ form.username|add_class:'form-control' }} </div> </div> <div class="form-group"> <div class="col-md-12"> {{ form.password|add_class:'form-control' }} </div> </div>¿Cómo puedo hacer esto?
guardar este contenido en forms.py
from django import forms from django.contrib.auth.forms import AuthenticationForm from django.forms.widgets import PasswordInput, TextInput class CustomAuthForm(AuthenticationForm): username = forms.CharField(widget=TextInput(attrs={'class':'validate','placeholder': 'Email'})) password = forms.CharField(widget=PasswordInput(attrs={'placeholder':'Password'})) en su urls.py principal (donde se llama su vista de inicio de sesión)
from django.contrib.auth import views as auth_views from app.forms import CustomAuthForm urlpatterns = [ url(r'^login/$', auth_views.login, name='login', kwargs={"authentication_form":CustomAuthForm}), ] lo adicional que hicimos aquí es agregar un kwargs kwargs={"authentication_form":CustomAuthForm}
use esto para su referencia futura django.contrib.auth.views.LoginView y django.contrib.auth.forms.AuthenticationForm
guardar este contenido en forms.py
from django import forms from django.contrib.auth.forms import AuthenticationForm from django.forms.widgets import PasswordInput, TextInput class MyAuthForm(AuthenticationForm): class Meta: model = User fields = ['username','password'] def __init__(self, *args, **kwargs): super(MyAuthForm, self).__init__(*args, **kwargs) self.fields['username'].widget = forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}) self.fields['username'].label = False self.fields['password'].widget = forms.PasswordInput(attrs={'class': 'form-control', 'placeholder':'Password'}) self.fields['password'].label = False y guarde este contenido en main urls.py
from users.forms import MyAuthForm urlpatterns = [ ... path('', auth_views.LoginView.as_view(template_name='users/login.html', authentication_form=MyAuthForm), name='login'), ... ]consulte este sitio: https://github.com/django/django/blob/master/django/contrib/auth/views.py
Sí, puede agregar un marcador de posición como este,
class LoginForm(forms.ModelForm): class Meta: model = YourModelName widgets = { 'username' : forms.TextInput(attrs = {'placeholder': 'Username'}), 'password' : forms.PasswordInput(attrs = {'placeholder': 'Password'}), }Espero que esto funcione para tí.