CSRF Middleware

class smarter.lib.django.middleware.csrf.SmarterCsrfViewMiddleware(get_response)[source]

Bases: CsrfViewMiddleware, SmarterRequestMixin

ASGI-safe CSRF middleware.

Extends Django’s CsrfViewMiddleware while preserving all Django request lifecycle invariants.

__init__(get_response)[source]

Note: this needs to exist; something in the Python MRO requires it, even if it does nothing.

If you remove this, you will get a mysterious error about something downstream expecting exactly one object.

allowed_origin_subdomains
csrf_trusted_origins_hosts

Django internals use this property.

We preserve compatibility while avoiding mutation of global settings.

property formatted_class_name: str

str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to ‘utf-8’. errors defaults to ‘strict’.

get_dynamic_trusted_origins(request)[source]

Return request-scoped trusted origins.

IMPORTANT: - never mutate Django settings - always return a fresh list

Return type:

list[str]

process_view(request, callback, callback_args, callback_kwargs)[source]

Main CSRF enforcement hook.

IMPORTANT: - return None to continue processing - return HttpResponse to short-circuit - NEVER return self.get_response(request)