|
@@ -71,17 +71,18 @@ you will need to wrap it in a :func:`sync_to_async` call. For example::
|
|
|
|
|
|
from asgiref.sync import sync_to_async
|
|
|
|
|
|
- results = sync_to_async(Blog.objects.get)(pk=123)
|
|
|
+ results = await sync_to_async(Blog.objects.get, thread_sensitive=True)(pk=123)
|
|
|
|
|
|
You may find it easier to move any ORM code into its own function and call that
|
|
|
entire function using :func:`sync_to_async`. For example::
|
|
|
|
|
|
from asgiref.sync import sync_to_async
|
|
|
|
|
|
- @sync_to_async
|
|
|
- def get_blog(pk):
|
|
|
+ def _get_blog(pk):
|
|
|
return Blog.objects.select_related('author').get(pk=pk)
|
|
|
|
|
|
+ get_blog = sync_to_async(_get_blog, thread_sensitive=True)
|
|
|
+
|
|
|
If you accidentally try to call a part of Django that is still synchronous-only
|
|
|
from an async view, you will trigger Django's
|
|
|
:ref:`asynchronous safety protection <async-safety>` to protect your data from
|