digitalfabrik / integreat-cms

Simplified content management back end for the Integreat App - a multilingual information platform for newcomers
https://digitalfabrik.github.io/integreat-cms/
Apache License 2.0
55 stars 33 forks source link

Error when trying to create a new POI category #2708

Closed MizukiTemma closed 3 months ago

MizukiTemma commented 3 months ago

Describe the Bug

The POI category form does not open......

Steps to Reproduce

  1. Go to Location Categories in Network Management
  2. Click on "Create location category"
  3. See ValueError

Expected Behavior

POI category form opens

Actual Behavior

An error occurs 😿

ValueError at /location-categories/new/

'POICategory' instance needs to have a primary key value before this relationship can be used.

Additional Information

Traceback ``` Mar 20 13:56:03 ERROR django.request - 500 Internal Server Error: /location-categories/new/ Traceback (most recent call last): File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 220, in _get_response response = response.render() ^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/response.py", line 114, in render self.content = self.rendered_content ^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/response.py", line 92, in rendered_content return template.render(context, self._request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/backends/django.py", line 61, in render return self.template.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 175, in render return self._render(context) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 167, in _render return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/loader_tags.py", line 157, in render return compiled_parent._render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 167, in _render return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/loader_tags.py", line 157, in render return compiled_parent._render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 167, in _render return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/loader_tags.py", line 63, in render result = block.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/loader_tags.py", line 63, in render result = block.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in render return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 1005, in return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/base.py", line 966, in render_annotated return self.render(context) ^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/template/defaulttags.py", line 194, in render len_values = len(values) ^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/forms/formsets.py", line 121, in __len__ return len(self.forms) ^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/forms/formsets.py", line 205, in forms return [ ^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/forms/formsets.py", line 206, in self._construct_form(i, **self.get_form_kwargs(i)) ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/integreat_cms/cms/forms/poi_categories/poi_category_translation_form.py", line 93, in get_form_kwargs id__in=self.instance.translations.values_list("language__id", flat=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/opt/integreat-cms/.venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 718, in get_queryset raise ValueError( ValueError: 'POICategory' instance needs to have a primary key value before this relationship can be used. ```
PeterNerlich commented 3 months ago

This reminds me of https://github.com/digitalfabrik/integreat-cms/pull/2675. This was exactly the same exception, just about regions