如何解决使用login_required装饰器的Django 3.1异步视图
我尝试使用由login_required装饰的异步视图。
目前,我在urls.py
urls.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={})
测试后,我收到一个错误,该视图将返回未等待的协程
等待渲染时,它告诉我无法等待http响应。
views.py:
@async_to_sync
async def my_view(request):
return render(request,context={})
似乎可以工作,但
以我的理解,@ async_to_sync应该将其同步,但是异步执行?
编辑:
无需login_required @async_to_sync似乎不是必需的,并且可以使用。
什么是正确的方法?
解决方法
您可能需要编写login_required
装饰器的异步版本。
目前还不能帮助您,我敢打赌:如果您使用默认的身份验证后端,则访问request.user
将涉及数据库访问,而数据库访问仍然是同步的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。