Django - implementing Async Views and Database Access in Version 4.0
I need help solving I'm following best practices but I'm working on a project and hit a roadblock. This might be a silly question, but I'm developing an application using Django 4.0 and trying to implement async views... However, I'm running into issues when trying to access the database using `async` methods. When I make calls to my models, I receive the following behavior: `RuntimeError: Threaded database connections are not allowed in async context`. I've read that Django's ORM isn't fully async-compatible yet, which leads me to question how best to structure my code. Hereโs a simplified version of my async view: ```python from django.http import JsonResponse from django.views import View from .models import MyModel class MyAsyncView(View): async def get(self, request): data = await MyModel.objects.all() # This line throws the behavior return JsonResponse({'data': list(data.values())}) ``` Iโve tried switching to `database_sync_to_async` and wrapping my ORM calls, but I still get errors: ```python from asgiref.sync import sync_to_async async def get_data(): return await sync_to_async(MyModel.objects.all)() ``` When I call `data = await get_data()` in my view, it just returns an empty queryset. Iโve also verified that thereโs data in the database. Could anyone provide insights on the correct approach to access the database from async views in Django? Is there a specific pattern or best practice I should follow? Any help would be greatly appreciated! I'm working on a CLI tool that needs to handle this. I'm working on a CLI tool that needs to handle this. I'd really appreciate any guidance on this. For reference, this is a production mobile app. Thanks for your help in advance! Any help would be greatly appreciated!