Как получить все сообщения (или данные) из группы в каналах django?


Я новичок в Django и пытаюсь работать над приложением для чата, используя Django Channels.
Недавно я столкнулся с проблемой, когда необходимо получить все данные (если таковые имеются), связанные с группой. Я искал в docs и других местах в поисках обходного пути, но не смог найти ничего полезного.


Можно ли взаимодействовать с базами данных Redis, связанными с используемыми слоями каналов, с помощью чего-то вроде клиента Redis для Python и получать данные таким образом? Или я должен попытаться хранить все вновь созданные сообщения отдельно для каждой группы в кэше?
(Я думаю, что последняя техника создаст ненужные накладные расходы, поскольку там будет дополнительная копия всех сообщений, связанных с группой)



Может ли кто-нибудь помочь мне с этой проблемой?
Спасибо, что прочитали!

Не знаю, где и как долго Redis хранит сообщения канала django, все сообщения в канале django доставляются один раз, и ответственность за их хранение лежит на пользователе..

В моем случае я хранил все сообщения в db, все, что вам нужно, это создать модель и создавать объекты этой модели, когда сообщение отправляется или передается в WebSocket... таким образом, вы можете иметь полный контроль над этими сообщениями без необходимости глубоко погружаться в django channel, смотрите фрагмент ниже из моего проекта, который может помочь вам

# Receive message from WebSocket
async def receive(self, text_data):
    text_data_json = json.loads(text_data)
    print("scope user", self.scope['user'])
    message = self.scope['user'].first_name + " " + str(date.today()) + " " + str(datetime.now().time())[0:5] + '\n' + text_data_json['message']

    # Saving the sent msg into Chat_LoadModel
    msg_id = await create_chat(room_name=self.room_name, message=message, sent_by=self.scope['user'],
                               channel_name=self.channel_name)
Вернуться на верх