我尝试使用由 login_required 修饰的异步视图。
目前我在我的 urls.py 中装饰它
网址.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'),
]
视图.py:
async def my_view(request):
return render(request, 'app/test.html', context={})
测试时我得到一个错误,这个视图将返回一个未等待的协程
等待渲染时,它告诉我不能等待 http 响应。
视图.py:
@async_to_sync
async def my_view(request):
return render(request, 'app/test.html', context={})
似乎工作,但
在我的理解@async_to_sync 应该把它同步,但执行它异步?
编辑:
没有 login_required @async_to_sync 似乎不是必需的,它可以工作。
正确的方法是什么?