属性错误:“ QueryDict”对象没有属性“ iterlists”

时间:2020-01-27 14:18:58

标签: python django

 context = {
        'form': form,
        'adv_form': adv_form,
        'shown': shown,
        'models': models_filter,
        'types': types_filter,
        'devices': dev_dict,
        'username': request.user.username,
        'request': dict(request.GET.iterlists()),
        'page': page_results,
        'paginator': paginator,
        'page_range': page_range,
        'query': query,
        'status':status,
        'suggestion': None,
        'myartifacts': myartifacts,
    }

将我的应用程序从python 2.7移到python 3.6后,我就崩溃了。 ('request':dict(request.GET.iterlists())) 谁能帮助我解决问题?

3 个答案:

答案 0 :(得分:2)

Python 2-> 3约定是将所有iterX方法重命名为X,因此将dict(request.GET.iterlists())更改为dict(request.GET.lists())

Django docs

答案 1 :(得分:2)

iterlists()是Py2上QueryDict构建的未记录函数。请改用dict(request.GET.lists())

阅读简短说明here

答案 2 :(得分:1)

在文档中似乎iterlists()仅适用于Python 2

https://docs.djangoproject.com/en/1.11/ref/request-response/#django.http.QueryDict.iterlists

我的假设是您可能会在Python 3的位置使用list()

https://docs.djangoproject.com/en/1.11/ref/request-response/#django.http.QueryDict.iterlists

希望有帮助