Как мне написать канальный слой Redis в django и windows - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть этот код в файле settings.py, но он не работает в django и windows, есть идеи, как исправить этот код? я использовал серверный сервер redis в своих настройках, чтобы моя функция consumer.py хорошо работала

async def websocket_receive(self, event):
    print('receive', event)
    front_text = event.get('text', None)
    if front_text is not None:
        loaded_dict_data = json.loads(front_text)
        msg = loaded_dict_data.get('message')
        user = self.scope['user']
        username = 'default'
        if user.is_authenticated:
            username = user.username
        myResponse = {
            'message': msg,
            'username': username
        }
        await self.create_chat_message(user, msg)
        await self.channel_layer.group_send(
            self.chat_room,
            {
                "type": "chat_message",
                "text": json.dumps(myResponse)
            }
        )

async def chat_message(self, event):
    print('message', event)
    await self.send({
        "type": "websocket.send",
        "text": event["text"]
    })

это мои settings.py

CHANNEL_LAYERS = {
    'default':
        { 'BACKEND': 'channels_redis.core.RedisChannelLayer',
          'CONFIG':{
              "hosts": [('127.0.0.1', 6379)],
          },
        },
}

то, что я пробовал

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": [("localhost", 6379)],
        },
    },
}

1 Ответ

0 голосов
/ 23 февраля 2020

Вы выбираете внешний ключ для StudentProfile в своем предложении .values, а не в поле имени. Чтобы это исправить, просто добавьте __Firstname:

students = studentsEnrolledSubjectsGrade.objects.filter(Teacher=teacher).filter(grading_Period=period).filter(
 Subjects=subject).filter(Grading_Categories=category).filter(GradeLevel=grade).order_by(
        'Students_Enrollment_Records', 'Date'
).values('Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Firstname', 'Date', 'Grade').distinct()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...