Современный лучший подход к использованию Django ORM с async?
Мир async Django быстро меняется, и трудно сказать, что в нем актуально, а что устарело.
Итак, каков текущий наилучший подход к использованию Django ORM (или, возможно, другого ORM) для наилучшей/наилучшей возможности async? Что люди успешно используют сегодня?
Множество рекомендаций, включая:
- https://forum.djangoproject.com/t/asynchronous-orm/5925/70
- https://channels.readthedocs.io/en/latest/topics/databases.html
Одна проблема, с которой я столкнулся, заключается в том, что независимо от того, что я пытаюсь сделать, я сталкиваюсь с проблемой "django.db.utils.OperationalError: database "test_djangoasyncproj" is being accessed by other users"
Думаю, вам следует следовать документации https://docs.djangoproject.com/en/4.0/topics/async/#asgiref.sync.sync_to_async https://docs.djangoproject.com/en/4.0/topics/async/#async-views
from asgiref.sync import sync_to_async
results = await sync_to_async(Blog.objects.get, thread_sensitive=True)(pk=123)
или
from asgiref.sync import sync_to_async
def _get_blog(pk):
return Blog.objects.select_related('author').get(pk=pk)
get_blog = sync_to_async(_get_blog, thread_sensitive=True)