Metadata-Version: 2.4
Name: django-cf-turnstile
Version: 0.1.0
Summary: A Django app for integrating Cloudflare Turnstile into forms.
Author-email: Petronald Green <petronaldgreen@gmail.com>
Project-URL: Homepage, https://github.com/ronaldgrn/django-cf-turnstile
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django>=4.2
Dynamic: license-file

# django-cf-turnstile

django-cf-turnstile is a Django app for integrating Cloudflare Turnstile
captchas into django forms.

Note that django-cf-turnstile only supports implicit rendering of widgets.


## Requirements

- Python: 3.10+
- Django: 4.2+


## Installation

Install the package with:
```shell
pip install django-cf-turnstile
```

Add "django_cf_turnstile" to your INSTALLED_APPS setting.
```python
INSTALLED_APPS = [
   ...,
   "django_cf_turnstile",
]
```

Add your Turnstile site key and secret to your django settings.
```python
# django-cf-turnstile
# Dummy keys used below, replace with your actual keys

CF_TURNSTILE_SITE_KEY = "1x00000000000000000000AA"
CF_TURNSTILE_SECRET_KEY = "1x0000000000000000000000000000000AA"
```

> Note that if you don't provide a site key and secret key the
> test site keys which always pass validation will be used.
>
> For more information on test keys see
> https://developers.cloudflare.com/turnstile/troubleshooting/testing/.


## Usage

In your Django forms import and use TurnstileCaptchaField

```python
from django import forms
from django_cf_turnstile.fields import TurnstileCaptchaField


class CaptchaSignupForm(forms.Form):
    ...
    captcha = TurnstileCaptchaField()
```


## Customization

### Overriding Keys

Keys may be overridden on individual forms by passing in `site_key` and `secret_key`.

```python
class CaptchaSignupForm(forms.Form):
    captcha = TurnstileCaptchaField(
       site_key="3x00000000000000000000FF",
       secret_key="1x0000000000000000000000000000000AA"
    )
```

### Adding Labels

By default, the label is set to an empty string.
This can be overridden by setting `label`.

```python
class CaptchaSignupForm(forms.Form):
    captcha = TurnstileCaptchaField(label="Captcha")
```


## Credits

Inspired by [django-recaptcha](https://github.com/django-recaptcha/django-recaptcha)

