Apps Aren't Loaded Yet. With Signals


Answer :

In django 1.9

# it is not need edit __init__.py 

apps.py

from django.apps import AppConfig  class YourAppConfig(AppConfig):      name = 'your_app_name'     verbose_name = 'Your App Name' # optional      def ready(self):         from your.app.path import signals # import your signals.py 

settings.py

# include path to YourAppConfig class:  INSTALLED_APPS = [     'your_app.apps.YourAppConfig',     # ..., ] 

see django docs


Try registering signals when the app first loads.

In you __init.py__ file:

default_app_config = 'yourappname.apps.YourAppConfig' 

In apps.py of the app:

from django.apps import AppConfig   class YourAppConfig(AppConfig):     name = 'yourappname'      def ready(self):         from yourappname import signals 

Do this for every app involved in registering signals.

Read this for more info.


There are several things to try:

  • remove "from django.contrib.auth import get_user_model" has you don't use it anyway and it doesn't work before the app is loaded. I don't know if importing alone triggers the issue or if you have ot use it, but better safe than sorry.
  • if you have a models packages (a dir with init.py) instead of a models.py file, then you need to declare explicitly app_label in every model you use in their "class Meta".
  • if none of that work, try to move the code you think causes that in the application config ready method.

E.G:

from django.apps import AppConfig   class ProductsConfig(AppConfig):     name = 'your_app_name'      def ready(self):         YourModel = self.get_model('YourModel')         # do stuff with the model 

BTW: Models, as all classes, are better named without underscores such as Profile_User => ProfileUser.

Good luck !


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?