Django sync_to_async
использую channels в джанго
Есть consumer
class ChatConsumer(AsyncWebsocketConsumer):
...
async def fetch_messages(self, data: typing.Dict):
messages = await Message.last_10()
print(messages)
Ну и модель
class Message(models.Model):
....
@staticmethod
@database_sync_to_async
def last_10():
return Message.objects.all()[:10]
В итоге при вызое фетча я получаю
django.core.exceptions.SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async.
Пробовал без статик метода, менял местами декораторы (другая ошбика), пробовал другой запрос к бд делать, проовал декоратор from asgiref.sync import sync_to_async - всё то же
К слову без орм асинк работает как надо, сервер настроен правильно
Смотрел на эти доки