Первым делом откроем форму приложения accounts, и добавим новое поле recaptcha и импорт функции ReCaptchaField:
from django_recaptcha.fields import ReCaptchaField
class UserLoginForm(AuthenticationForm):
"""
Форма авторизации на сайте
"""
recaptcha = ReCaptchaField()
class Meta:
model = User
fields = ['username', 'password', 'recaptcha']
def __init__(self, *args, **kwargs):
"""
Обновление стилей формы регистрации
"""
super().__init__(*args, **kwargs)
self.fields['username'].widget.attrs['placeholder'] = 'Логин пользователя'
self.fields['username'].widget.attrs['class'] = 'form-control'
self.fields['password'].widget.attrs['placeholder'] = 'Пароль пользователя'
self.fields['password'].widget.attrs['class'] = 'form-control'
self.fields['username'].label = 'Логин'
Также мы изменили вывод формы, а именно убрали цикл, в котором ко всем полям добавляется класс form-control от Bootstrap, иначе к полю капчи тоже бы был добавлен класс form-control и она перестала бы работать.
Теперь если мы перейдем на страницу авторизации, то увидим следующее:
Таким образом мы установили капчу на страницу авторизации. По аналогии мы можем добавить капчу на страницы регистрации, изменения профиля, отправки комментария и тд.