diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2020-02-12 15:15:00 -0700 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-03-18 19:59:12 +0100 |
| commit | fc0fa72ff4cdbf5861a366e31cb8bbacd44da22d (patch) | |
| tree | d419ce531586808b0a111664907b859cb6d22862 /django/utils/decorators.py | |
| parent | 3f7e4b16bf58f99c71570ba75dc97db8265071be (diff) | |
Fixed #31224 -- Added support for asynchronous views and middleware.
This implements support for asynchronous views, asynchronous tests,
asynchronous middleware, and an asynchronous test client.
Diffstat (limited to 'django/utils/decorators.py')
| -rw-r--r-- | django/utils/decorators.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/django/utils/decorators.py b/django/utils/decorators.py index bb2e498e46..5c9a5d01c7 100644 --- a/django/utils/decorators.py +++ b/django/utils/decorators.py @@ -150,3 +150,30 @@ def make_middleware_decorator(middleware_class): return _wrapped_view return _decorator return _make_decorator + + +def sync_and_async_middleware(func): + """ + Mark a middleware factory as returning a hybrid middleware supporting both + types of request. + """ + func.sync_capable = True + func.async_capable = True + return func + + +def sync_only_middleware(func): + """ + Mark a middleware factory as returning a sync middleware. + This is the default. + """ + func.sync_capable = True + func.async_capable = False + return func + + +def async_only_middleware(func): + """Mark a middleware factory as returning an async middleware.""" + func.sync_capable = False + func.async_capable = True + return func |
