-
Notifications
You must be signed in to change notification settings - Fork 1
Saving pages with modified slug returns an error #1
Description
Environment:
Request Method: POST
Request URL: http://localhost:8000/admin/stack_it/page/1/change/
Django Version: 2.1.7
Python Version: 3.6.5
Installed Applications:
['stack_it',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis',
'django.contrib.sites',
'django.contrib.redirects',
'django.contrib.postgres',
'emailauth',
'front',
'vqapps.mediamanager',
'vqapps.utils',
'vqapps.faq',
'factory_generator',
'simple_mail',
'ordered_model',
'rest_framework',
'rest_framework.authtoken',
'django_filters',
'rest_auth',
'corsheaders',
'imagekit',
'import_export',
'rest_framework_swagger',
'rest_framework_filters',
'ckeditor',
'ckeditor_uploader',
'mapwidgets',
'mptt',
'polymorphic_tree',
'polymorphic',
'django_extensions',
'residences',
'residents',
'claims',
'departures',
'notices',
'paiements',
'services',
'blog',
'jobs',
'testimonies',
'staff',
'contact',
'algorithms',
'press',
'debug_toolbar']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'vqapps.utils.middleware.NonHtmlDebugToolbarMiddleware']
Traceback:
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
The above exception (duplicate key value violates unique constraint "django_redirect_site_id_old_path_ac5dd16b_uniq"
DETAIL: Key (site_id, old_path)=(1, /actualite/) already exists.
) was the direct cause of the following exception:
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in handle_redirection
226. Redirect.objects.create(old_path=old_full_path, new_path=new_full_path, site_id=settings.SITE_ID)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/query.py" in create
413. obj.save(force_insert=True, using=self.db)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in save
718. force_update=force_update, update_fields=update_fields)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in save_base
748. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in _save_table
831. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in _do_insert
869. using=using, raw=raw)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/query.py" in _insert
1136. return query.get_compiler(using=using).execute_sql(return_id)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1289. cursor.execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in execute
164. return self._record(self.cursor.execute, sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in _record
106. return method(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
100. return super().execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
77. return executor(sql, params, many, context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/utils.py" in exit
89. raise dj_exc_value.with_traceback(traceback) from exc_value
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
During handling of the above exception (duplicate key value violates unique constraint "django_redirect_site_id_old_path_ac5dd16b_uniq"
DETAIL: Key (site_id, old_path)=(1, /actualite/) already exists.
), another exception occurred:
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper
604. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner
223. return view(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/polymorphic/admin/parentadmin.py" in change_view
210. return real_admin.change_view(request, object_id, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in change_view
1640. return self.changeform_view(request, object_id, form_url, extra_context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/polymorphic/admin/parentadmin.py" in changeform_view
218. return real_admin.changeform_view(request, object_id, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in changeform_view
1525. return self._changeform_view(request, object_id, form_url, extra_context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in _changeform_view
1557. form_validated = form.is_valid()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/forms.py" in is_valid
185. return self.is_bound and not self.errors
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/forms.py" in errors
180. self.full_clean()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/forms.py" in full_clean
383. self._post_clean()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/models.py" in _post_clean
403. self.instance.full_clean(exclude=exclude, validate_unique=False)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in full_clean
1137. self.clean()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in clean
75. self.denormalize_full_path(created=created, save=False)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in denormalize_full_path
187. self.handle_redirection(touched_full_path)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in handle_redirection
229. site_id=settings.SITE_ID).update(new_path=new_full_path)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/query.py" in update
693. rows = query.get_compiler(self.db).execute_sql(CURSOR)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1383. cursor = super().execute_sql(result_type)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1065. cursor.execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in execute
164. return self._record(self.cursor.execute, sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in _record
106. return method(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
100. return super().execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
77. return executor(sql, params, many, context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
80. self.db.validate_no_broken_transaction()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/base/base.py" in validate_no_broken_transaction
437. "An error occurred in the current transaction. You can't "
Exception Type: TransactionManagementError at /admin/stack_it/page/1/change/
Exception Value: An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block.
Environment:
Request Method: POST
Request URL: http://localhost:8000/admin/stack_it/page/1/change/
Django Version: 2.1.7
Python Version: 3.6.5
Installed Applications:
['stack_it',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis',
'django.contrib.sites',
'django.contrib.redirects',
'django.contrib.postgres',
'emailauth',
'front',
'vqapps.mediamanager',
'vqapps.utils',
'vqapps.faq',
'factory_generator',
'simple_mail',
'ordered_model',
'rest_framework',
'rest_framework.authtoken',
'django_filters',
'rest_auth',
'corsheaders',
'imagekit',
'import_export',
'rest_framework_swagger',
'rest_framework_filters',
'ckeditor',
'ckeditor_uploader',
'mapwidgets',
'mptt',
'polymorphic_tree',
'polymorphic',
'django_extensions',
'residences',
'residents',
'claims',
'departures',
'notices',
'paiements',
'services',
'blog',
'jobs',
'testimonies',
'staff',
'contact',
'algorithms',
'press',
'debug_toolbar']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'vqapps.utils.middleware.NonHtmlDebugToolbarMiddleware']
Traceback:
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
The above exception (duplicate key value violates unique constraint "django_redirect_site_id_old_path_ac5dd16b_uniq"
DETAIL: Key (site_id, old_path)=(1, /actualite/) already exists.
) was the direct cause of the following exception:
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in handle_redirection
226. Redirect.objects.create(old_path=old_full_path, new_path=new_full_path, site_id=settings.SITE_ID)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/query.py" in create
413. obj.save(force_insert=True, using=self.db)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in save
718. force_update=force_update, update_fields=update_fields)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in save_base
748. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in _save_table
831. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in _do_insert
869. using=using, raw=raw)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/query.py" in _insert
1136. return query.get_compiler(using=using).execute_sql(return_id)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1289. cursor.execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in execute
164. return self._record(self.cursor.execute, sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in _record
106. return method(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
100. return super().execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
77. return executor(sql, params, many, context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/utils.py" in exit
89. raise dj_exc_value.with_traceback(traceback) from exc_value
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)
During handling of the above exception (duplicate key value violates unique constraint "django_redirect_site_id_old_path_ac5dd16b_uniq"
DETAIL: Key (site_id, old_path)=(1, /actualite/) already exists.
), another exception occurred:
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper
604. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner
223. return view(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/polymorphic/admin/parentadmin.py" in change_view
210. return real_admin.change_view(request, object_id, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in change_view
1640. return self.changeform_view(request, object_id, form_url, extra_context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/polymorphic/admin/parentadmin.py" in changeform_view
218. return real_admin.changeform_view(request, object_id, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in changeform_view
1525. return self._changeform_view(request, object_id, form_url, extra_context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in _changeform_view
1557. form_validated = form.is_valid()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/forms.py" in is_valid
185. return self.is_bound and not self.errors
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/forms.py" in errors
180. self.full_clean()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/forms.py" in full_clean
383. self._post_clean()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/forms/models.py" in _post_clean
403. self.instance.full_clean(exclude=exclude, validate_unique=False)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/base.py" in full_clean
1137. self.clean()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in clean
75. self.denormalize_full_path(created=created, save=False)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in denormalize_full_path
187. self.handle_redirection(touched_full_path)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/stack_it/seo/mixins.py" in handle_redirection
229. site_id=settings.SITE_ID).update(new_path=new_full_path)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/query.py" in update
693. rows = query.get_compiler(self.db).execute_sql(CURSOR)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1383. cursor = super().execute_sql(result_type)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1065. cursor.execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in execute
164. return self._record(self.cursor.execute, sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py" in _record
106. return method(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
100. return super().execute(sql, params)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
77. return executor(sql, params, many, context)
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
80. self.db.validate_no_broken_transaction()
File "/Users/Julien/git/python/residetape/venv/lib/python3.6/site-packages/django/db/backends/base/base.py" in validate_no_broken_transaction
437. "An error occurred in the current transaction. You can't "
Exception Type: TransactionManagementError at /admin/stack_it/page/1/change/
Exception Value: An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block.