-
카테고리
-
세부 분야
웹 개발
-
해결 여부
미해결
AttributeError: 'NoneType' object has no attribute 'send'
23.06.19 18:02 작성 23.06.19 18:03 수정 조회수 1.12k
0
import asyncio
import os
import django
from channels.layers import get_channel_layer
os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings"
django.setup()
async def main():
channel_layer = get_channel_layer()
print(channel_layer)
message_dict = {'content': 'world'}
await channel_layer.send('hello', message_dict)
response_dict = await channel_layer.receive('hello')
is_equal = message_dict == response_dict
print("송신/수신 데이터가 같습니까?", is_equal)
asyncio.run(main())
channel_layer가 자꾸 None으로 지정되서
channel_layer.send
이 부분도 실행이 안됩니다.
구글링도 해보고 chatgpt에도 물어보고
redis 버전도 낮춰보고 다했는데 안됩니당..
redis 4.3.6
channels 4.0.0
channels-redis 4.1.0
입니다.
답변을 작성해보세요.
1
이진석
지식공유자2023.06.19
안녕하세요.
강의 5:08 구간처럼 settings.CHANNEL_LAYERS 설정을 아래 스샷과 같이 확인해보셨나요?
settings.py 코드 내역과 장고 쉘에서 확인한 해당 설정값을 댓글로 보여주시겠어요?
get_channel_layer 구현을 보시면, CHANNEL_LAYERS에서 지정 alias 키의 설정이 없을 경우, None을 반환하기도 합니다. // CHANNEL_LAYERS 입력에서 오타가 있으시거나, 'default' 키에서 오타가 있으실 수도 있습니다.
확인해보시고, 댓글 부탁드립니다.
화이팅입니다. :-)
0
김동혁
질문자2023.06.20
아무래도 프로젝트 설정파일을 못읽는거같아서
os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings"
이 부분을 수정했더니 잘 됩니다. !! 감사합니다.
os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings.settings로 바꿨어용 "
이진석
지식공유자2023.06.20
잘 구동된다니 다행입니다. :-)
그런데 settings 경로가 좀 이상한데요.
지금 settings.py 파일의 전체 경로가 어떻게 되나요? settings 폴더 안에 settings.py파일이 있나요?
답변 3