justquick / django-activity-stream

Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.
http://django-activity-stream.rtfd.io/en/latest/
BSD 3-Clause "New" or "Revised" License
2.38k stars 482 forks source link

Django 3: Model class django.contrib.sites.models.Site doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS #462

Closed thibaut-pro closed 4 years ago

thibaut-pro commented 4 years ago

Trying to add path(r"activity/", include("actstream.urls")), to make the feed endpoints available in Django 3 fails with the following error:

Traceback (most recent call last):
  File "./manage.py", line 31, in <module>
    execute_from_command_line(sys.argv)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
    super().run_from_argv(argv)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/commands/test.py", line 53, in handle
    failures = test_runner.run_tests(test_labels)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/snapshottest/django.py", line 32, in run_tests
    **kwargs
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/test/runner.py", line 698, in run_tests
    self.run_checks(databases)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/test/runner.py", line 636, in run_checks
    call_command('check', verbosity=self.verbosity, databases=databases)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/__init__.py", line 168, in call_command
    return command.execute(*args, **defaults)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/commands/check.py", line 69, in handle
    databases=options['databases'],
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/management/base.py", line 396, in check
    databases=databases,
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/checks/registry.py", line 70, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/checks/urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/core/checks/urls.py", line 23, in check_resolver
    return check_method()
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/urls/resolvers.py", line 408, in check
    for pattern in self.url_patterns:
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/urls/resolvers.py", line 589, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/urls/resolvers.py", line 582, in urlconf_module
    return import_module(self.urlconf_name)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Documents/application/application/urls.py", line 40, in <module>
    path(r"api/v1/", include("application.api.urls")),
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Documents/application/application/api/urls.py", line 57, in <module>
    path(r"activity/", include("actstream.urls")),
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/actstream/urls.py", line 3, in <module>
    from actstream import feeds, views
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/actstream/feeds.py", line 8, in <module>
    from django.contrib.sites.models import Site
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/contrib/sites/models.py", line 78, in <module>
    class Site(models.Model):
  File "/.local/share/virtualenvs/application-Y1CezQv3/lib/python3.6/site-packages/django/db/models/base.py", line 116, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class django.contrib.sites.models.Site doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

Did anyone encounter the same issue? Any tips on how to fix this?

thibaut-pro commented 4 years ago

Nevermind. The fix was simple: https://stackoverflow.com/questions/35388637/runtimeerror-model-class-django-contrib-sites-models-site-doesnt-declare-an-ex

I just needed to add:

INSTALLED_APPS = [
    ...
    'django.contrib.sites',
]

SITE_ID = 1