Как использовать 'asyn c def' в django представлениях? - PullRequest
0 голосов
/ 29 февраля 2020
#views.py

async def test(request: ASGIRequest):
    return HttpResponse(b'hello')

class Test(View):
    async def get(self, request: ASGIRequest):
        print(type(request))
        print(dir(self))
        return HttpResponse(b'hello')
#urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path(r'testfunc/', test),
    path(r'testclass/', Test.as_view()),
]

Я получаю это:

AttributeError at /testclass/
'coroutine' object has no attribute 'get'

##########

AttributeError at /testfunc/
'coroutine' object has no attribute 'get'

Ответы [ 2 ]

0 голосов
/ 29 февраля 2020

Django 3.0 был первым шагом к тому, чтобы сделать его полностью асинхронным c -поддерживаемым, но это будет долгий путь. Асин c представления еще не поддерживаются , но они ожидаются позже в серии 3.x.

0 голосов
/ 29 февраля 2020

В django 3.0 они начали добавлять поддержку django, но это не значит, что мы можем использовать asyn c представления или промежуточное ПО.

Подробнее об этом здесь: https://docs.djangoproject.com/en/3.0/topics/async/

...