Djnago = 3.1.0
django-allauth = 0.42.0
Djangoでallauthをつかってログイン認証を実装している段階です。
- テンプレートのFormのinputタグにbootstrapのclassとplaceholderを追加したい。
- forms.pyの__init__に書き込んでもHTMLには反映しない。
- 別の書き方(Meta)をしてみても同様。
そもそも書き方が違うのでしょうか。教えていただけると幸いです。お願いします。
# forms.py from django.contrib.auth.forms import AuthenticationForm from .models import Accounts class CustomLoginForm(AuthenticationForm): """ログインフォーム""" def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for field in self.fields.values(): field.widget.attrs['class'] = 'form-form-control' field.widget.attrs['placeholder'] = field.label # __init__ で、うまくいかないのでコチラでやってみてもダメ # class Meta: # model: Accounts # widgets = { # 'username': forms.EmailInput(attrs={'class': 'form-control, form-control-user'}), # 'password': forms.PasswordInput(attrs={'class': 'form-control, form-control-user'}), # }
# views.py from django.contrib.auth.views import LoginView from django.urls import reverse_lazy from .forms import CustomLoginForm class Login(LoginView): """ログインビュー""" form_class = CustomLoginForm # <-- ここで入力しているのに反映してない success_url = reverse_lazy('home') template_name = 'registration/login.html'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。