45
votes

I just installed django and after installing that I created a django project and was trying to run django server by command:

python manage.py runserver

After that I'am getting error as: SyntaxError: Generator expression must be parenthesized

error screenshot

8
Post the code that generates the error. But the error is quite self explaining.Willem Van Onsem
Post the content in admin\widgets.py around line 151...Willem Van Onsem
Which python version you are using? 2.7 or 3.4/5? And which Django version you are using?Anup Yadav

8 Answers

86
votes

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.

18
votes

Generator expression must be parenthesized

> Update Django version to 1.11.17

pip install django==1.11.17
2
votes

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
1
votes
  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.
0
votes

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

0
votes

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,)
0
votes

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

-1
votes

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())