django channels str不支持缓冲区API

时间:2016-03-20 12:23:43

标签: django typeerror channels django-channels

我试图在https://blog.heroku.com/archives/2016/3/17/in_deep_with_django_channels_the_future_of_real_time_apps_in_django的帮助下使用django和渠道但是这段代码似乎与python 3.4不兼容

在我的ws_connect上:

@channel_session
def ws_connect(message):
    prefix, label = message['path'].strip('/').split('/')
    room = Room.objects.get(label=label)
    Group('chat-' + label).add(message.reply_channel)
    message.channel_session['room'] = room.label

尝试连接套接字时出现以下错误。

前缀,label = message ['path']。strip('/')。split('/') TypeError:类型str不支持缓冲区API

我刚开始使用python 3.4并且不知道为什么会中断

1 个答案:

答案 0 :(得分:2)

看起来message['path']是字节对象而不是字符串,并且尝试将strip()应用于字节对象会产生相当神秘的错误消息。相反,请尝试message['path'].decode()将其转换为字符串,然后进行剥离和拆分。

另见Python 3.0 urllib.parse error "Type str doesn't support the buffer API"