Как на самом деле работает 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)
Вернуться на верх