Как использовать сигнал для отмены/блокировки api запроса Django?

Я реализовал сигнал для конечной точки API, и я хотел бы, чтобы он ограничивал доступ к конечной точке, когда логика для сигнала оценивается как false. Есть ли хороший способ сделать это?

Я заметил в своих журналах, что он правильно оценивает true или false, но на самом деле он не заставляет мое представление отправлять 500 или какой-либо способ сказать "доступ ограничен". Скорее, он по-прежнему отправляет обычный ответ API.

handlers.py

from corsheaders.signals import check_request_enabled

def cors_allow_mysites(sender, request, **kwargs):
    if ("Origin" in request.headers) and (request.headers["Origin"] == 'https://url.com'):
        print("Handler allowed")
        return True
    print("Handler not allowed")
    return False
    

check_request_enabled.connect(cors_allow_mysites)

apps.py

from django.apps import AppConfig


class ApiEndpointConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'api_endpoint'

    def ready(self):
        # Makes sure all signal handlers are connected
        from . import handlers  # noqa

__init.py

default_app_config = "api_endpoint.apps.ApiEndpointConfig"
Вернуться на верх