Django library for friendly captcha
Project description
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()
Add 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.8.1/widget.module.min.js" async defer></script>
<script nomodule src="https://unpkg.com/friendly-challenge@0.8.1/widget.min.js" async defer></script>
I thought about adding these static assets as form media assets, but users wouldn’t be able to choose the desired version. So I decided against for now.
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://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 ...
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-friendly-captcha-0.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b1cd3f8d9c99f84e04795b1148ce63c531254b62a86770edb9ec99bf0694417 |
|
MD5 | 84355477ca351cbdf16df56d64d07607 |
|
BLAKE2b-256 | a2993f7f7cbc03899383424fc659347e7dff74176f70468d453db9f4e5e87a78 |
Hashes for django_friendly_captcha-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e29d85b381572d2e2fead3dcff94cce8a5f2db254cd735f7ceff491da2765e01 |
|
MD5 | 4d56beadab4a483cd6508d55b30d51e6 |
|
BLAKE2b-256 | 2ee7e75ac951b113060be037b1a1a3eff64d0a2c9ba29a633d08d81b92fb8b69 |