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
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
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.
Generator expression must be parenthesized
> Update Django version to 1.11.17
pip install django==1.11.17
Had same issue. This is how I changed to django version 2.0 and used python3
pip install django==1.11.17
python manage.py runserver
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
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,)
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
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())