我正在尝试使用异步函数从 PostgreSQL 数据库检索订单列表,但遇到运行时错误,并显示消息“您无法将 ATOMIC_REQUESTS 与异步视图一起使用。”我尝试调试代码,发现 Orders 中的 get 函数根本没有被调用。我还查看了 Django 文档,但找不到任何相关信息。有人可以帮我解决这个问题吗?
这是代码
class Utils:
@sync_to_async
def get_orders(self):
orders = Order.objects.all()
return [orders]
@sync_to_async
def get_sellers(self):
sellers = Seller.objects.all()
return [sellers]
class Orders(View, Utils):
async def get(self, request):
orders = asyncio.ensure_future(self.get_orders())
await asyncio.wait([orders])
print(orders.result())
return render(request, 'orders.html')
这是错误日志
Traceback (most recent call last):
File "C:\Хранилище говна\pythonProject1\venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
File "C:\Хранилище говна\pythonProject1\venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
File "C:\Хранилище говна\pythonProject1\venv\lib\site-packages\django\core\handlers\base.py", line 192, in _get_response
wrapped_callback = self.make_view_atomic(callback)
File "C:\Хранилище говна\pythonProject1\venv\lib\site-packages\django\core\handlers\base.py", line 350, in make_view_atomic
raise RuntimeError(
RuntimeError: You cannot use ATOMIC_REQUESTS with async views.
在设置中,您可能会找到名为“ATOMIC_REQUEST”的选项(通常放置在数据库设置中)并将其设置为 False。