django-ratelimit9
combines django-recaptcha and django-ratelimit into a single app.
Each time when a limit is exceeded a reCAPTCHA field is dynamically appended to a Form.
Make sure you have read the docs of these two requirements in order to learn how to set up limits and customize the reCAPTCHA.
Install via pip:
pip install django-ratelimit9
- Add
ratelimit9
to yourINSTALLED_APPS
Let's say you want to use view MyView
along with MyForm
form.
Code for your forms.py
:
from django.forms import Form
from ratelimit9.forms import Ratelimit9Form
class MyForm(Ratelimit9Form, ModelForm):
# ...
Code for your views.py
:
from django.views.generic import CreateView
from ratelimit9.mixins import Ratelimit9Mixin
class MyView(Ratelimit9Mixin, CreateView):
ratelimit_key = 'ip'
ratelimit_rate = '5/m'
# ...