Geotrek-admin
Geotrek-admin copied to clipboard
Error on course after deleting parent site
Course has error on display after having deleted parent site :
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: ERROR 2022-06-22 09:09:47,845 django.request Internal Server Error: /course/1/
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: Traceback (most recent call last):
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: response = get_response(request)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/core/handlers/base.py", line 204, in _get_response
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: response = response.render()
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/response.py", line 105, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: self.content = self.rendered_content
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/response.py", line 83, in rendered_content
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return template.render(context, self._request)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/backends/django.py", line 61, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.template.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 170, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 988, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: output = self.filter_expression.resolve(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 671, in resolve
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: obj = self.var.resolve(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 796, in resolve
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: value = self._resolve_lookup(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 858, in _resolve_lookup
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: current = current()
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 76, in super
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return mark_safe(self.render(self.context))
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 192, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return template.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 172, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 150, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return compiled_parent._render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 162, in _render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/loader_tags.py", line 62, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: result = block.nodelist.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 938, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: bit = node.render_annotated(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 905, in render_annotated
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return self.render(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 988, in render
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: output = self.filter_expression.resolve(context)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/django/template/base.py", line 698, in resolve
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: new_obj = func(obj, *arg_vals)
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: File "/opt/geotrek-admin/lib/python3.6/site-packages/mapentity/templatetags/mapentity_tags.py", line 71, in field_v
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: return obj._meta.get_field(field).verbose_name
juin 22 09:09:47 Pnrpaca-Geotrek-Admin gunicorn[10124]: AttributeError: 'NoneType' object has no attribute '_meta'
Parent site could be deleted without warning about children.
OK indeed. I am not sure if a course can exist without a parent site... Maybe we should protect it ?
Yes, the solution would be to protect the deletion when there is an existing parent site attached to the course object.
To get around this problem, you can access directly to edit page, and associate at least a parent site.
Edit page is like
A course can be a child of 1 or several parent_sites
. To fix this problem, we could protect deletion of a site, or fix detail view.
Fixed in release 2.100.0. Deletion is protected when there is a child associated to the outdoor site.