首页 > 解决方案 > 协程和 Django 点击劫持中间件

问题描述

我正在尝试将aiohttp库与 Django 一起使用。我已按照教程进行操作,但将我的view一种方法定义为async.

Traceback (most recent call last):
  File "/Users/.../lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
    response = get_response(request)
  File "/Users/.../lib/python3.6/site-packages/django/utils/deprecation.py", line 97, in __call__
    response = self.process_response(request, response)
  File "/Users/.../lib/python3.6/site-packages/django/middleware/clickjacking.py", line 26, in process_response
    if response.get('X-Frame-Options') is not None:
AttributeError: 'coroutine' object has no attribute 'get'

我对此的最小工作示例如下:

async def conversion_form_process(request):
    if request.method == 'POST':
        form = ConversionForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            return HttpResponseRedirect('/thanks/')

    else:
        form = ConversionForm()

    return render(request, 'mainpage.html', {'form': form})

这表明它与async关键字有关,但我不知道如何修复它。任何帮助深表感谢。谢谢!

标签: djangodjango-viewsaiohttpdjango-middleware

解决方案


抱歉,aiohttpDjango不兼容。

它使用完全不同的范式。


推荐阅读