Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Django nocaptcha recaptcha form field/widget app.

Project Description

[![Build Status](](


Add new-style Google ReCaptcha widgets to your Django forms simply by adding a
NoReCaptchaField field to said forms.


In late 2014, Google updated their ReCaptcha service, changing its API. The update significantly
changes the appearance and function of ReCaptcha. This has been referred to as
ReCaptcha 2 or "nocaptcha recaptcha".

This module is intended to be a successor to django-recaptcha to support the new style
Google Recaptcha. It borrows a lot of the logic from the django-recaptcha, but has been
updated to support the Google change.

For the Google documentation for this service, visit the following:

The original django-recaptcha project is located at the following location:


- Implements Google's New "NoCaptcha ReCaptcha Field"
- Uses the fallback option for browsers without JavaScript
- Easy to add to a Form via a FormField
- Works similar to django-recaptcha
- Working demo projects
- Works with Python 2.7 and 3.4


pip install django-nocaptcha-recaptcha


Add nocaptcha_recaptcha to your INSTALLED_APPS setting

Add the following to

Required settings:
NORECAPTCHA_SITE_KEY (string) = the Google provided site_key
NORECAPTCHA_SECRET_KEY (string) = the Google provided secret_key

Optional Settings:
NORECAPTCHA_VERIFY_URL (string) = reCaptcha api endpoint for verification.
Best to leave this as the default setting.
Default is
NORECAPTCHA_WIDGET_TEMPLATE (string) = location for the widget template.
Default is nocaptcha_recaptcha/widget.html

Add the field to a form that you want to protect.

from nocaptcha_recaptcha.fields import NoReCaptchaField

class DemoForm(forms.Form):
captcha = NoReCaptchaField()

Add Google's JavaScript library to your base template or elsewhere, so it is
available on the page containing the django form.

<script src="" async defer></script>

You can customize the field.

- You can add attributes to the g-recaptcha div tag through the following

captcha = NoReCaptchaField(gtag_attrs={'data-theme':'dark'}))

- You can override the template for the widget like you would any
other django template.


The demo project includes a fully working example of this module.
To use it, run the following:

cd demo
export NORECAPTCHA_SITE_KEY="<your site key>"
export NORECAPTCHA_SECRET_KEY="<your secret key>"
./ runserver

# in a browser, visit http://localhost:8000


python test

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(10.9 kB) Copy SHA256 Hash SHA256
Source None Jan 16, 2018

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting