From 1072c13b30370c9de2c0de7926ced981aab0369f Mon Sep 17 00:00:00 2001 From: Daniele Scasciafratte Date: Thu, 25 Sep 2025 15:05:43 +0200 Subject: [PATCH] Support for the set of parameters Add JSON serialization for request parameters in rate limiting with a new `params` key in this way check for all the URL params. --- django_ratelimit/core.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/django_ratelimit/core.py b/django_ratelimit/core.py index 1270799..90ae4ac 100644 --- a/django_ratelimit/core.py +++ b/django_ratelimit/core.py @@ -5,6 +5,7 @@ import socket import time import zlib +import json from django.conf import settings from django.core.cache import caches @@ -207,6 +208,8 @@ def get_usage(request, group=None, fn=None, key=None, rate=None, method=ALL, value = key(group, request) elif key in _SIMPLE_KEYS: value = _SIMPLE_KEYS[key](request) + elif 'params' in key: + value = json.dumps({**request.GET.dict(), **request.POST.dict()}) elif ':' in key: accessor, k = key.split(':', 1) if accessor not in _ACCESSOR_KEYS: