Привет, я возился с django -каналами 2 и хочу получить параметр URL и использовать его в функции, но похоже, что он содержит пробел или что-то похожее, что вызывает проблемы с моей функцией. Моя функция принимает 1 аргумент, но когда я пытаюсь передать в нее параметр URL, выдается следующая ошибка task_status() takes 1 positional argument but 2 were given
. Я вижу, когда я пытаюсь напечатать URL-адрес, он печатает правильное значение, но также создается новая строка.
Можно ли получить ТОЛЬКО параметр URL-адреса и использовать его непосредственно в функции?
consumers.py
class ChatConsumer(AsyncConsumer):
async def websocket_connect(self, event):
await self.send({
"type": "websocket.accept"
})
user = self.scope['user']
get_task_id = self.scope['url_route']['kwargs']['task_id']
print(get_task_id)
get_info = await self.task_status(get_task_id)
print(get_info)
await self.send({
"type": "websocket.send",
"text": "hey"
})
async def websocket_receive(self, event):
print("receive", event)
async def websocket_disconnect(self, event):
print("disconnected", event)
def task_status(task_id):
command = "golemcli tasks show {}".format(task_id)
taskoutput = subprocess.getoutput(command)
print(taskoutput)
routing.py
from django.urls import re_path
from . import consumers
websocket_urlpatterns = [
re_path(r'ws/dashboard/task/(?P<task_id>[0-9a-f-]+)', consumers.ChatConsumer),
]
URL веб-сайта http://localhost:8000/dashboard/task/aa3c6c12-5446-11ea-b237-1e0f691c9a55