[Django]-SyntaxError: Generator expression must be parenthesized

95πŸ‘

βœ…

TL; DR: Upgrade Django to version 1.11.17+ or 2.0+


This error is a known incompatibility related to Python issue #32012. Projects based on Django 1.11.16 and below will raise this exception when started with Python 3.7. A patch for this issue has been merged into Django 2.0 and 2.1 branches and cherry-picked later into Django 1.11.17.

Note: Python 3.7 is officially supported by Django 1.11.17 and above, including any 2.x branch.

πŸ‘€Antwane

25πŸ‘

Generator expression must be parenthesized

> Update Django version to 1.11.17

pip install django==1.11.17

2πŸ‘

Had same issue. This is how I changed to django version 2.0 and used python3

  • $pip3 install django==2.0
  • $python3 manage.py runserver
πŸ‘€Tess

2πŸ‘

  1. Install this version: pip install django==1.11.17
  2. Run cmd.
  3. go to your project folder.
  4. python manage.py runserver
  5. it will give a URL for server and you are good to go.
πŸ‘€amit Kumar

0πŸ‘

This is due to the version incompatibility.Just we need to upgrade the Django version to 2.1.
Run the command in cmd:Pip install django==2.1. this will resolve the issue

πŸ‘€Saroj Kumar

0πŸ‘

I just faced an Error like this. I was using Django-1.11.10. I deleted it and installed Django 2.0

Problem is solved.

But if you are using ForeignKey in you model.py files it must be problem again. You should update your coding to 2.0 versiong insted of older versiyon.

Example:

django older version

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

django 2.0

user = models.ForeignKey('auth.User', related_name='posts', on_delete=models.CASCADE,)
πŸ‘€Ahmet Erturk

0πŸ‘

I had the same issue and I realized it is due to the compatibility of the Django version I was working with. So I had to state the Python version explicitly like this: >python3.6 manage.py runserver

πŸ‘€Erick Kiminza

-1πŸ‘

Just open file:
venv/lib/python3.7/site-packages/django/contrib/admin/widgets.py
and replace the lines

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

with

related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())
πŸ‘€CAP.tech

Leave a comment