Python Django 3.1异步视图,需要登录\u装饰程序

Python Django 3.1异步视图,需要登录\u装饰程序,python,asynchronous,django-views,python-decorators,django-3.1,Python,Asynchronous,Django Views,Python Decorators,Django 3.1,我尝试使用一个异步视图,该视图通过所需的登录名进行修饰。 目前我在我的URL.py中装饰它 URL.py: from . import views from django.urls import path from django.contrib.auth.decorators import login_required urlpatterns = [ path('', login_required(views.my_view), name='my_view'), ] views.py

我尝试使用一个异步视图,该视图通过所需的登录名进行修饰。
目前我在我的URL.py中装饰它

URL.py:

from . import views
from django.urls import path
from django.contrib.auth.decorators import login_required

urlpatterns = [
    path('', login_required(views.my_view), name='my_view'),
]
views.py:

async def my_view(request):
return render(request, 'app/test.html', context={})
@async_to_sync
async def my_view(request):
return render(request, 'app/test.html', context={})
当测试它时,我得到一个错误,这个视图将返回一个未等待的协同路由

当等待呈现时,它告诉我不能等待http响应

views.py:

async def my_view(request):
return render(request, 'app/test.html', context={})
@async_to_sync
async def my_view(request):
return render(request, 'app/test.html', context={})
似乎有效,但,
我的理解是@async\u to\u sync应该将其转换为synchronus,但执行异步

编辑:
如果不需要登录,\u required@async\u to\u sync似乎不是必需的,它可以工作


正确的方法是什么?

您可能需要编写一个异步版本的
login\u required
decorator

我敢打赌,目前这对您并没有多大帮助:如果您使用默认的auth后端,访问
request.user
将涉及数据库访问,这仍然是同步的