Skip to main content

Cloudflare Turnstile integration for Wagtail forms

Project description

Wagtail Turnstile

A lightweight Cloudflare Turnstile integration for Wagtail form pages.
Drop-in support with minimal configuration — and no Google reCAPTCHA required.

PyPI - Python Version License: MIT


Features

  • Adds a Turnstile field type to Wagtail’s form builder
  • Validates Turnstile submissions server-side

Installation

pip install wagtail-turnstile

Then add it to your Django settings:

INSTALLED_APPS = [
    ...
    "turnstile",
]

Add your Cloudflare Turnstile site and secret keys to your settings.py:

TURNSTILE_SITE_KEY = "your-site-key"
TURNSTILE_SECRET_KEY = "your-secret-key"

Usage

Here's a sample contact form page and field. Subclassing TurnstileAbstractFormField will add a new form field type, labelled to the user as "Captcha". This will handle the challenge and validation flow with Turnstile.

from turnstile.models import TurnstileAbstractFormField, TurnstileFormBuilder

class FormField(TurnstileAbstractFormField):
    page = ParentalKey(
        "ContactPage",
        on_delete=models.CASCADE,
        related_name="form_fields"
    )

class ContactPage(AbstractEmailForm):
    form_builder = TurnstileFormBuilder

Todo

Quite a lot, I would assume. It probably needs to be more customisable, and we don't need to store the Turnstile token.

Got any suggestions?

Feel free to raise an issue, and if you have a fix, submit a merge request and I'll be glad to take a look.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wagtail_turnstile-0.4.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wagtail_turnstile-0.4.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file wagtail_turnstile-0.4.0.tar.gz.

File metadata

  • Download URL: wagtail_turnstile-0.4.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for wagtail_turnstile-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3fbc2a3a0ff9dd5cc9f27b073c65d85aa756465942ad1124b4fbf3b04c313f4c
MD5 439f8f89fb33faf4a7656da30df97d42
BLAKE2b-256 7ef9783e83303f44b71c0b4ae996d1263e6ef6b1705a9518fd3a8ef4d3aad043

See more details on using hashes here.

Provenance

The following attestation bundles were made for wagtail_turnstile-0.4.0.tar.gz:

Publisher: publish.yml on soundslocalcic/wagtail-turnstile

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wagtail_turnstile-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for wagtail_turnstile-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 61532987533caf244aca70b0da97f762315f82659822b013562176a0f44af2a5
MD5 dcae4c7c865f5fc3e7d43cd3e021f760
BLAKE2b-256 fb60a7cb1ee1994f7a041caaaa78985b5108cce764cda5f07a4bfc4f57976973

See more details on using hashes here.

Provenance

The following attestation bundles were made for wagtail_turnstile-0.4.0-py3-none-any.whl:

Publisher: publish.yml on soundslocalcic/wagtail-turnstile

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page