Ошибка атрибута: объект 'QueryDict' не имеет атрибута 'iterlists' - PullRequest
0 голосов
/ 27 января 2020
 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,
    }

Я получаю этот cra sh, как только я переместил свое заявление с python 2.7 на python 3.6. ('request': dict (request.GET.iterlists ())) Может кто-нибудь помочь мне с решением?

Ответы [ 3 ]

1 голос
/ 27 января 2020

iterlists() была недокументированная функция для сборки QueryDict на Py2. Вместо этого используйте dict(request.GET.lists()).

Прочитайте краткое описание здесь

1 голос
/ 27 января 2020

Похоже, что в документации, что iterlists () доступно только для Python 2

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

Мои предположения является то, что вы, вероятно, использовали бы lists () вместо него для Python 3

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

Надеюсь, что поможет

1 голос
/ 27 января 2020

Python 2 -> 3 соглашение заключается в переименовании всех iterX методов в X, поэтому измените dict(request.GET.iterlists()) на dict(request.GET.lists())

Django документы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...