31👍
I faced the same error. Following worked for me.
In your wsgi file change the last line to :
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
This have been changed since Django 1.6 to newer version.
Here is the post that helped to deploy the django app.
If you want to use Nginx as webserver to deploy django app follow this post.
12👍
This is an answer for the less clever ones (like me): Be sure to check the obvious: The error message says: ... Check that you don't make non-lazy gettext calls at import time.
So, if you use django’s translation in the verbose_name of a model field or on any other part that is evaluated at import time, you need to use the *_lazy
version. If not, you’ll end up with the error the OP had.
I basically had:
from django.db import models
from django.utils.translation import gettext as _
import datetime
# other things
class myModle(models.Model):
date = models.DateField(_('Date'), default=datetime.date.today)
# other defs. and things
And got the same error as the OP, but my wsgi config was fine.
All I had to do was replacing gettext
with gettext_lazy
(or ugettext
with ugettext_lazy
) and everything was fine.
- [Django]-Revert Django 1.7 RemoveField migration
- [Django]-Django authentication and Ajax – URLs that require login
- [Django]-Accessing the user's request in a post_save signal
7👍
@hellsgate solution worked for me.
Specifically from the link referenced by @hellsgate, I changed:
module = django.core.handlers.wsgi:WSGIHandler()
to
module = django.core.wsgi:get_wsgi_application()
in my vassals.ini file
- [Django]-Django: When extending User, better to use OneToOneField(User) or ForeignKey(User, unique=True)?
- [Django]-Redirecting after AJAX post in Django
- [Django]-Sending an SMS to a Cellphone using Django
6👍
Here is another possible cause for that exception: in my apps.py
file I had accidentally added translation for the name
of the AppConfig
class:
class BookConfig(AppConfig):
name = _('Book')
verbose_name = _('Book')
After removing the misplaced translation everything started to work perfectly:
class BookConfig(AppConfig):
name = 'Book'
verbose_name = _('Book')
- [Django]-Running Django with FastCGI or with mod_python
- [Django]-Remove pk field from django serialized objects
- [Django]-Convert seconds to hh:mm:ss in Python
4👍
This appears to be the same as this incorrectly reported bug – https://code.djangoproject.com/ticket/23146.
I came across this as well and the fix suggested in that link worked out for me. The update needs to be made in your wsgi.py
file. If you aren’t sure how to make the change, post ‘wsgi.py’ for me to have look at
- [Django]-Django Admin: How do I set the ordering of inline elements?
- [Django]-Django test RequestFactory vs Client
- [Django]-Django.contrib.gis.db.backends.postgis vs django.db.backends.postgresql_psycopg2
3👍
You might be missing setting up path to your application. Check this out my wsgi file. You will find more accurate documentation here https://joshcarllewis.com/articles/getting-started-with-django . I hope it will resolve your problem.
import os, sys
sys.path.append('D:/django/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
- [Django]-What is the difference between {% load staticfiles %} and {% load static %}
- [Django]-Reference list item by index within Django template?
- [Django]-Pulling data to the template from an external database with django
0👍
You can see what version of “Django” you have installed with:
$python -c 'import django; print (django.get_version ())'
and see that version uses the project “requeriments.txt”. If it is not the same version, you have to uninstall “Django” and install the version set to “requeriments.txt”.
If you use “virtual environment”, may thou standest wrong “virtual environment” and you installed it a new version of django.
for example:
In your “requeriments.txt” put Django == 1.6.1
$python -c 'import django; print(django.get_version())'
1.7.4
$sudo pip uninstall Django
$sudo pip install Django==1.6.1
- [Django]-Developing with Django+Celery without running `celeryd`?
- [Django]-How to use 2 different cache backends in Django?
- [Django]-Can Django automatically create a related one-to-one model?
0👍
Same answer as @hellsgate and @shawn. I had to replace
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
by
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
- [Django]-Python 3 list(dictionary.keys()) raises error. What am I doing wrong?
- [Django]-With DEBUG=False, how can I log django exceptions to a log file
- [Django]-Checking the number of elements in an array in a Django template
0👍
Using
"from django.utils.translation import gettext_lazy as _"
instead of
"from django.utils.translation import gettext as _"
in apps.py files inside my app folders solved my problem.
- [Django]-How to stop gunicorn properly
- [Django]-Django – comparing old and new field value before saving
- [Django]-URL encoding on Django Template
0👍
I got the same error below:
django.core.exceptions.AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don’t make non-lazy gettext calls at import time.
Because I used gettext() for verbose_name in MyAppConfig
class in my_app/apps.py
as shown below:
# "my_app/apps.py"
from django.apps import AppConfig
from django.utils.translation import gettext as _ # Here
class MyAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'my_app'
verbose_name = _('my_app') # Here
And, I used gettext()
in LANGUAGES in core/settings.py
as shown below:
# "core/settings.py"
from django.utils.translation import gettext as _ # Here
LANGUAGES = (
('en', _('English')),
('fr', _('French'))
)
So instead, I used gettext_lazy() for verbose_name
in MyAppConfig
class in my_app/apps.py
as shown below, then the error was solved:
# "my_app/apps.py"
from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _ # Here
class MyAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'my_app'
verbose_name = _('my_app') # Here
And, I used gettext_lazy()
in LANGUAGES in core/settings.py
as shown below, then the error was solved:
# "core/settings.py"
from django.utils.translation import gettext_lazy as _ # Here
LANGUAGES = (
('en', _('English')), # Here
('fr', _('French')) # Here
)
- [Django]-Unresolved attribute reference 'objects' for class '' in PyCharm
- [Django]-Handling single page application url and django url
- [Django]-Django REST Framework and FileField absolute url