Skip to main content

Django library for friendly captcha

Project description

https://img.shields.io/pypi/v/django-friendly-captcha PyPI - Downloads https://codecov.io/gh/christianwgd/django-friendly-captcha/graph/badge.svg?token=CJ39YW793C Ruff

Django field/widget for Friendly Captcha (https://friendlycaptcha.com).

Installation

Latest version:

pip install -e git+git://github.com/christianwgd/django-friendly-captcha.git#egg=django-friendly-captcha

Stable version:

pip install django-friendly-captcha

Documentation

Usage

Add ‘friendly_captcha’ to your INSTALLED_APPS.

INSTALLED_APPS = [
    ...
    'friendly_captcha',
]

Add the captcha field to your form:

from friendly_captcha.fields import FrcCaptchaField


class ContactForm(forms.ModelForm):

    class Meta:
        model = ContactMessage
        fields = (
            'name', 'email', 'subject', 'text'
        )

    captcha = FrcCaptchaField()

As of version 0.1.7 the javascript static assets are included in the widget, so there is no need to do that in your project templates. Version 0.1.10 includes friendly captcha version 0.9.15 javascript files. If you need a different version you can set these by providing them in your settings:

FRC_WIDGET_MODULE_JS = 'https://unpkg.com/friendly-challenge@0.9.8/widget.module.min.js'
FRC_WIDGET_JS = 'https://unpkg.com/friendly-challenge@0.9.8/widget.min.js'

For version 0.1.6 and below you need to include the script tags from Friendly Captcha to your forms template (see https://docs.friendlycaptcha.com/#/installation)

<script type="module" src="https://unpkg.com/friendly-challenge@0.9.8/widget.module.min.js" async defer></script>
<script nomodule src="https://unpkg.com/friendly-challenge@0.9.8/widget.min.js" async defer></script>

If you build up your form from single fields, dont’t forget to include the captcha form field.

Configuration

Register to Friendly Captcha at https://friendlycaptcha.com/signup to get your sitekey and captcha secret.

FRC_CAPTCHA_SECRET = '<yourCaptchaSecret'
FRC_CAPTCHA_SITE_KEY = '<yourCaptchaSiteKey>'
FRC_CAPTCHA_VERIFICATION_URL = 'https://api.friendlycaptcha.com/api/v1/siteverify'

In default the form will fail with an error (‘Captcha test failed’). You can change this behaviour by setting FRC_CAPTCHA_FAIL_SILENT to True.

FRC_CAPTCHA_FAIL_SILENT = False

When setting FAIL_SILENT to True it’s up to you to handle captcha verification:

# in your form view
def form_valid(self, form):
    captcha_verified = form.cleaned_data['captcha']
    if captcha_verified:
        # send mail or whatever ...
    else:
        # captcha verification failed, do nothing ...

As of version 0.1.11 there’s a new settings option to get a mocked value from the captcha verification. You can set FRC_CAPTCHA_MOCKED_VALUE to True or False, depending on the vaule you need for testing. The default value is unset which equals to None.

FRC_CAPTCHA_MOCKED_VALUE = None|False|True

Custom widget attributes

You can add custom widget attrs to the FrcCaptchaField like in any other Django field:

captcha = FrcCaptchaField(widget=FrcCaptchaWidget(attrs={'data-start': 'auto'}))

See https://docs.friendlycaptcha.com/#/widget_api for additional widget attrs. The data-lang attr is set from your Django configured language.

Logging

If you want to log the results of the captcha verifications you can add a logger to your logging configuration:

'django.friendly_captcha': {
    'handlers': ['default'],
    'level': 'INFO',
}

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

django_friendly_captcha-0.1.14.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.

django_friendly_captcha-0.1.14-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file django_friendly_captcha-0.1.14.tar.gz.

File metadata

  • Download URL: django_friendly_captcha-0.1.14.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_friendly_captcha-0.1.14.tar.gz
Algorithm Hash digest
SHA256 96dee4e538dd3def237b5dff3e6380820fdc662a774d8789d4e5be668921f049
MD5 36a46b01a25742b07e38b707c18ace7c
BLAKE2b-256 56437ee1ad7d697dd0f4c1f7ecfc975f5505cdafbb238d8f9e47e93b76dc0e3a

See more details on using hashes here.

File details

Details for the file django_friendly_captcha-0.1.14-py3-none-any.whl.

File metadata

File hashes

Hashes for django_friendly_captcha-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 7fdd13d4e947e10402638eed773323dd303c4d2b5bc501038819c5b46c2eb714
MD5 43d135ff1e63c1ffb9a870511a4c150f
BLAKE2b-256 dd015d9f65684ebf24c3eef2f3d069c6dd43d30aeb2dfd837fe77505c43501a5

See more details on using hashes here.

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