django - 我如何在 django 和 windows 中编写 redis 通道层
问题描述
我的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)],
},
},
}
解决方案
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()
推荐阅读
- apache-kafka - Kafka 日志压缩主题分区和磁盘空间
- c# - 忽略 ASP.NET MVC WebAPI 中的路由参数
- ios - 如何在 XCode 的 IB 中使用 Material 框架?
- angular - 如何将值从对话服务传递到父 Angular 2
- python - Python:如何并行化用于具有许多函数输入的嵌套 for 循环中的函数?
- dependency-injection - 如何在责任链模式中使用 Unity IoC 注入多个不同的依赖项?
- google-analytics - 将自定义视图保存为默认值
- python - 如何在 Python 中使用 GLPK 为目标函数设置时间限制或松弛参数?
- typescript - Typescript 泛型:给定键 K 和对象 T,约束 T[K] 的类型
- excel - 在一列中查找类似日期然后计算最小值/最大值之间的差异的公式