Доступ к переменным потребительского класса каналов django извне

class ExampleConsumer(AsyncWebsocketConsumer):

    async def connect(self):
        self.id = 1
        self.foo = 'bar'
        await self.accept()

Можно ли получить все существующие экземпляры ExampleConsumer, отфильтровать их по id и получить foo значение? Где-то в django view

Вы можете получить все экземпляры с помощью gc.get_objects

import gc

class ExampleConsumer(AsyncWebsocketConsumer):

    async def connect(self):
        self.id = 1
        self.foo = 'bar'
        await self.accept()


def get_inc(cls):
    return [obj for obj in gc.get_objects() if isinstance(obj, cls)]

for i in get_inc(ExampleConsumer):
    print(i.foo)
Вернуться на верх