Пользовательское действие Djangochannelsrestframework не работает

Я хочу создать пользовательское действие, как в документации, но он отвечает, что метод не позволяет
Документация: https://pypi.org/project/djangochannelsrestframework/. Блок "Добавление пользовательских действий"

другие веб-сокеты работали корректно

Мой исходный код:

consumers.py:

from games.models import GameLaunchers, GamesCategories, Games, Tournires
from news.models import News
from games.serializers import GamesCategoriesSerializer, GameLaunchersSerializer, GameSerializer, TourniresSerializer
from news.serializers import NewsListSerializer
from market.models import MarketCategory, MarketProductsType, MarketProducts, MarketOrders
from market.serializers import MarketCategoriesSerializer, MarketProductsTypeSerializer, MarketProductsSerializer, MarketOrdersListSerializer
from django.core import serializers

from djangochannelsrestframework.settings import api_settings
from django.http import Http404

from djangochannelsrestframework.generics import GenericAsyncAPIConsumer
from djangochannelsrestframework.consumers import AsyncAPIConsumer
from djangochannelsrestframework.decorators import action
from djangochannelsrestframework.mixins import (
    ListModelMixin,
    RetrieveModelMixin,
    PatchModelMixin,
    UpdateModelMixin,
    CreateModelMixin,
    DeleteModelMixin,
    PaginatedModelListMixin
)

class GamesLaunchersAddConsumer(
    CreateModelMixin,
    GenericAsyncAPIConsumer,
):
    serializer_class = GameLaunchersSerializer

class GameLaunchersConsumers(GenericAsyncAPIConsumer):
    queryset = GameLaunchers.objects.all()
    serializer_class = GameLaunchersSerializer
    
    @action
    async def send_email(self, request_id, some=None, **kwargs):
        # do something async
        return {'response_with': 'some message'}, 200

routing.py

from django.urls import path
from socketapp import consumers
# from socketapp.views import GamesViewSet
from django.urls import re_path
from djangochannelsrestframework.consumers import view_as_consumer
# from djangochannelsrestframework.consumers import view_as_consumer
# from games.views import GameLaunchersAddView, GameLaunchersView

websocket_urlpatterns = [
    re_path(r'ws/games/launchers/add',
            consumers.GamesLaunchersAddConsumer.as_asgi()),
    re_path(r'ws/games/launchers', consumers.GameLaunchersConsumers.as_asgi()),
]

Отправка сообщения:

{
    "action": "send_email",
    "request_id": 42,
    "some": "value passed as keyword argument to action"
}

Я получил эту ошибку:

{
    "errors": [
        "Method \"send_email\" not allowed."
    ],
    "data": null,
    "action": "send_email",
    "response_status": 405,
    "request_id": 42
}

Измените это

{ "action": "send_email", "request_id": 42, "some": "значение, переданное в качестве аргумента ключевого слова в действие" }

к этому

{ действие: "send_email", request_id: 42, some: "значение, переданное в качестве аргумента ключевого слова действию" }

Вернуться на верх