2016-03-20 4 views
0

Я пытаюсь работать с Джанго и каналов с помощью https://blog.heroku.com/archives/2016/3/17/in_deep_with_django_channels_the_future_of_real_time_apps_in_django однако этот код не совместим с питоном 3,4Джанго каналы ул оленья кожа suppoer буфер API

на моем 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 

При попытке подключения к соке появляется следующая ошибка. ..

префикс, метка = сообщение [ 'путь'] полоса ('/') Раскол ('/') TypeError: Тип ул не поддерживает буфер API

Я только начал работать с python 3.4 и понятия не имею, почему это ломается

ответ

2

Похоже, что message['path'] является объектом байтов, а не строкой, и попытка применить strip() к объекту bytes дает это довольно загадочное сообщение об ошибке. Вместо этого попробуйте message['path'].decode(), чтобы преобразовать его в строку, а затем выполните разборку и разбивку.

См. Также Python 3.0 urllib.parse error "Type str doesn't support the buffer API"