Как на самом деле работает django-simple-captcha?
Я уже некоторое время пытаюсь внедрить django-simple-captcha в свой Django проект и просто не могу его внедрить. Многие вопросы, связанные с ней, имеют многолетнюю давность, поэтому мне интересно, функционирует ли она до сих пор. Я пытался следовать документации, но это было не лучше, чем некоторые из вопросов здесь. Многие люди отмечают, как легко его установить, но я пробовал так много раз и способов, что запутался. Этот вопрос здесь - всего лишь один из многих, как я описал ранее. Использование django-simple-captcha с django-lazysignup? Кто-нибудь может объяснить мне, что я делаю не так? Я подозреваю, что я не проверяю капчу должным образом в моем views.py.
Я добавил 'captcha' к моим установленным приложениям в settings.py.
settings.py
INSTALLED_APPS = [
'blog.apps.BlogConfig',
'users.apps.UsersConfig',
'crispy_forms',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
'taggit',
'crispy_forms_gds',
'captcha',
'django.forms',
]
В моем forms.py я добавил его так же, как я видел в документации и других вопросах.
forms.py
from captcha.fields import CaptchaField, CaptchaTextInput
class PostForm(forms.ModelForm):
captcha = CaptchaField()
class Meta:
model = Post
fields = [
'title',
'content',
'image',
'video',
'url',
'tags',
]
views.py
class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
fields = ['title', 'content', 'image', 'video', 'url', 'tags',]
if request.POST:
form = PostForm(request.POST)
if form.is_valid():
human = True
else:
form = PostForm()
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)