SyntaxError: выражение генератора должно быть заключено в круглые скобки

Я только что установил django и после его установки создал проект django и пытался запустить сервер django командой:

python manage.py runserver

После этого я получаю сообщение об ошибке: SyntaxError: выражение генератора должно быть заключено в круглые скобки.

SyntaxError: выражение генератора должно быть заключено в круглые скобки

Опубликуйте код, вызывающий ошибку. Но ошибка вполне объяснима.

Willem Van Onsem 10.07.2018 14:59

Разместите контент в admin\widgets.py около строки 151 ...

Willem Van Onsem 10.07.2018 15:00

Какую версию Python вы используете? 2,7 или 3,4 / 5? А какую версию Django вы используете?

Anup Yadav 10.07.2018 15:00
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
44
4
44 676
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

TL; DR: обновите Django до версии 1.11.17+ или 2.0+.


Эта ошибка известная несовместимость связана с Проблема с Python # 32012. Проекты, основанные на Django 1.11.16 и ниже, вызовут это исключение при запуске с Python 3.7. Патч для этой проблемы был объединен в ветки Django 2.0 и 2.1 и выбран позже в Джанго 1.11.17.

Примечание: Python 3.7 официально поддерживается Джанго 1.11.17 и выше, включая любая ветка 2.x.

Последняя часть, обновление до 1.11.17, работала отлично.

Edgar Ramírez Mondragón 29.12.2018 07:02

Это также решило мою проблему!

Tiago Martins Peres 李大仁 08.04.2020 15:14

Была такая же проблема. Вот как я перешел на django версии 2.0 и использовал python3

  • $ pip3 установить django == 2.0
  • $ python3 manage.py runserver

Выражение генератора должно быть заключено в круглые скобки.

> Обновите версию Django до 1.11.17

pip install django==1.11.17

Просто откройте файл: venv/lib/python3.7/site-packages/django/contrib/admin/widgets.py и замените строки

related_url += '?' + '&'.join(
    '%s=%s' % (k, v) for k, v in params.items(),)

с участием

related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())

это работает для меня, я обновляю свой проект django до 1.11, и я пытаюсь выполнить миграцию, и это дает эти ошибки, и я пытаюсь изменить код на тот, который указан выше, и я пытаюсь выполнить миграцию снова, и он работает, поэтому попробуйте.

CAP.tech 04.09.2019 10:16

Это действительно плохая идея - вы меняете основной код Django и теперь должны гарантировать, что ваша «кастомная» копия Django установлена ​​везде, где установлен ваш сайт.

OmarL 13.10.2019 15:29

Это связано с несовместимостью версий, просто нам нужно обновить версию Django до 2.1. Выполните команду в cmd: Pip install django == 2.1. это решит проблему

  1. Установите эту версию: pip install django==1.11.17
  2. Запустите cmd.
  3. перейдите в папку вашего проекта.
  4. python manage.py runserver
  5. он предоставит URL-адрес для сервера, и все готово.

Я только что столкнулся с такой ошибкой. Я использовал Django-1.11.10. Я удалил его и установил Django 2.0

Проблема решена.

Но если вы используете ForeignKey в своих файлах model.py, это снова проблема. Вам следует обновить код до версии 2.0 вместо более старой версии.

Пример:

старая версия django

user = models.ForeignKey('auth.User', related_name='posts')

django 2.0

user = models.ForeignKey('auth.User', related_name='posts', on_delete=models.CASCADE,)

У меня была такая же проблема, и я понял, что это связано с совместимостью версии Django, с которой я работал. Поэтому мне пришлось указать версию Python прямо так: >python3.6 manage.py runserver

Другие вопросы по теме