Я только что установил django и после его установки создал проект django и пытался запустить сервер django командой:
python manage.py runserver
После этого я получаю сообщение об ошибке: SyntaxError: выражение генератора должно быть заключено в круглые скобки.
Разместите контент в admin\widgets.py около строки 151 ...
Какую версию Python вы используете? 2,7 или 3,4 / 5? А какую версию Django вы используете?
Возможный дубликат SyntaxError: выражение генератора должно быть заключено в круглые скобки / python manage.py migrate






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, работала отлично.
Это также решило мою проблему!
Была такая же проблема. Вот как я перешел на django версии 2.0 и использовал python3
Выражение генератора должно быть заключено в круглые скобки.
> Обновите версию 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, и я пытаюсь выполнить миграцию, и это дает эти ошибки, и я пытаюсь изменить код на тот, который указан выше, и я пытаюсь выполнить миграцию снова, и он работает, поэтому попробуйте.
Это действительно плохая идея - вы меняете основной код Django и теперь должны гарантировать, что ваша «кастомная» копия Django установлена везде, где установлен ваш сайт.
Это связано с несовместимостью версий, просто нам нужно обновить версию Django до 2.1. Выполните команду в cmd: Pip install django == 2.1. это решит проблему
pip install django==1.11.17python manage.py runserverЯ только что столкнулся с такой ошибкой. Я использовал 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
Опубликуйте код, вызывающий ошибку. Но ошибка вполне объяснима.