Не удается заставить Django-Simple-Captcha работать, сообщения отправляются даже при использовании неправильной капчи

Я думаю, что это простая проблема для решения, но я пытаюсь уже пару часов и думаю, что мой файл View испорчен. Капча отображается на моей странице, но когда я создаю пост и заполняю совершенно неправильную капчу, она все равно отправляется и обновляется.

Мой views-файл:

def discussions(request):
    posts = Post.objects.filter(created__lte=timezone.now()).order_by('-created')

    if request.method == 'POST':

        captcha = CaptchaTestModelForm(request.POST)

        if captcha.is_valid():
            human = True
    
    else:
        captcha = CaptchaTestModelForm()  

    if request.method == 'POST':
        form = PostForm(request.POST, request.FILES)  
    
        if form.is_valid():
            post = form.save(commit=False)
            post.created = timezone.now()
            post.save()
            return redirect('discussions')

    else:
        form = PostForm()
        captcha = CaptchaTestModelForm()

Исправил это, сделав следующее в моем представлении:

def discussions(request):
    posts = Post.objects.filter(created__lte=timezone.now()).order_by('-created')

    if request.method == 'POST':
        form = CaptchaTestModelForm(request.POST, request.FILES)
    
        if form.is_valid():
            post = form.save(commit=False)
            post.created = timezone.now()
            post.save()
            return redirect('discussions')

    else:
        form = CaptchaTestModelForm()
         

    return render(request, 'discussions/discussions.html', {'posts': posts, 'form': form,})

Моя форма:

class CaptchaTestModelForm(ModelForm):
    captcha = CaptchaField()
    class Meta:
        model = Post
        fields = ['entry', 'post_image']
        labels = {
            'entry': "Discuss something spoopy:",
            'post_image': 'Post image (not mandatory)',
        }
Вернуться на верх