Request for `/stadt/api/grouprs/<id>/` fails if `grouprise.features.geo` is not enabled
Example URL: https://stadtgestalten.org/stadt/api/groups/8/
Stacktrace:
ERROR:django.request:Internal Server Error: /stadt/api/groups/8/
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/grouprise/dependencies/sentry_sdk/integrations/django/views.py", line 84, in sentry_wrapped_callback
return callback(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rest_framework/viewsets.py", line 125, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/lib/python3/dist-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/usr/lib/python3/dist-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rest_framework/mixins.py", line 54, in retrieve
instance = self.get_object()
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rest_framework/generics.py", line 83, in get_object
queryset = self.filter_queryset(self.get_queryset())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/rest_framework/generics.py", line 150, in filter_queryset
queryset = backend().filter_queryset(self.request, queryset, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/django_filters/rest_framework/backends.py", line 74, in filter_queryset
return filterset.qs
^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/django_filters/filterset.py", line 230, in qs
qs = self.filter_queryset(qs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/django_filters/filterset.py", line 213, in filter_queryset
queryset = self.filters[name].filter(queryset, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/grouprise/python-lib/grouprise/features/geo/rest.py", line 12, in filter
from .models import Location
File "/usr/share/grouprise/python-lib/grouprise/features/geo/models.py", line 27, in <module>
class Location(models.Model):
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 113, in __new__
raise RuntimeError(
RuntimeError: Model class grouprise.features.geo.models.Location doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
The problem was probably introduced in 3cfc2bb4: the new GroupFilter
field has_location
caused the unconditional import of grouprise.features.geo.models
.