Skip to content
This repository was archived by the owner on Apr 10, 2020. It is now read-only.

Saving pages with modified slug returns an error #1

@Jufik

Description

@Jufik

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions