Как использовать сигнал для отмены/блокировки 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"