Установка месячного лимита использования - API Django
Я просматриваю документацию по фреймворку Django rest и другие вопросы здесь, пытаясь понять, есть ли способ настроить его для ограничения месячного тарифа по группам пользователей.
логика: Пользователь A - группа 1 Пользователь B - группа 2
Группа 1 - разрешено 10 звонков в месяц на конечную точку Группа 2 - разрешено 100 звонков в месяц
Любая помощь будет очень признательна, я новичок в Django и очарован DRF
Если у вас так мало лимитов, вы можете регистрировать каждый запрос в отдельной модели и проверять лимиты вручную.
class RareEndpointRequest(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
endpoint = models.TextField("Endpoint's URL")
created_at = models.DateTimeField(auto_now_add=True)
def some_endpoint(request, *args, **kwargs):
user = request.user
request_count = RareEndpointRequest.objects.filter(
user=user,
endpoint='some_endpoint',
created_at__year=timezone.now().year,
created_at__month=timezone.now().month,
).count()
if request_count > request_limit_by_group(user.group):
return HttpResponse("Rate limit", status=429)
# do your actions
RareEndpointRequest.objects.create(user=user, endpoint='some_endpoint')
return HttpResponse("Some data")