#8818·django-cms

[BUG] cms_pageurl.site_id does not exist in 5.1.1 and 5.1.2

Author: MacLakeCreated Aug 31, 2026Updated Sep 8, 2026

Description

After upgrading to django-cms 5.1.1 or 5.1.2 I get an error in my multi site instance.

Steps to reproduce

I guess the reason is triggered by the multi site setup with site ids, as the error message involves cms_pageurl.site_id, and somewhere I read that it’s now possible to have a multi site installation with middleware instead of site ids.

Expected behaviour

No error when using site ids for multi site installations, like until django CMS 5.1.0

Actual behaviour

Error with traceback when calling a page or test or migrate:

bash
[31/Aug/2026 17:45:24] "GET / HTTP/1.1" 302 0
Internal Server Error: /en/
Traceback (most recent call last):
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/psycopg/cursor.py", line 117, in execute
    raise ex.with_traceback(None)
psycopg.errors.UndefinedColumn: column cms_pageurl.site_id does not exist
LINE 1: ...cms_pageurl"."language", "cms_pageurl"."page_id", "cms_pageu...
                                                             ^
HINT:  Perhaps you meant to reference the column "cms_pageurl.page_id" or the column "cms_page.site_id".

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 56, in inner
    response = get_response(request)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 199, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/cms/views.py", line 104, in details
    page = get_page_from_request(request, use_path=slug)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/cms/utils/page.py", line 114, in get_page_from_request
    page_urls = list(page_urls)  # force queryset evaluation to save 1 query
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 434, in __iter__
    self._fetch_all()
    ~~~~~~~~~~~~~~~^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 2239, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
                         ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 98, in __iter__
    results = compiler.execute_sql(
        chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size
    )
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1624, in execute_sql
    cursor.execute(sql, params)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 122, in execute
    return super().execute(sql, params)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 79, in execute
    return self._execute_with_wrappers(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        sql, params, many=False, executor=self._execute
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 100, in _execute
    with self.db.wrap_database_errors:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/utils.py", line 94, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/psycopg/cursor.py", line 117, in execute
    raise ex.with_traceback(None)
django.db.utils.ProgrammingError: column cms_pageurl.site_id does not exist
LINE 1: ...cms_pageurl"."language", "cms_pageurl"."page_id", "cms_pageu...
                                                             ^
HINT:  Perhaps you meant to reference the column "cms_pageurl.page_id" or the column "cms_page.site_id".
[31/Aug/2026 17:45:25] "GET /en/ HTTP/1.1" 500 188050
[31/Aug/2026 17:45:28] "GET /favicon.ico HTTP/1.1" 302 0
Internal Server Error: /en/favicon.ico/
Traceback (most recent call last):
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/psycopg/cursor.py", line 117, in execute
    raise ex.with_traceback(None)
psycopg.errors.UndefinedColumn: column cms_pageurl.site_id does not exist
LINE 1: ...cms_pageurl"."language", "cms_pageurl"."page_id", "cms_pageu...
                                                             ^
HINT:  Perhaps you meant to reference the column "cms_pageurl.page_id" or the column "cms_page.site_id".

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 56, in inner
    response = get_response(request)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 199, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/cms/views.py", line 104, in details
    page = get_page_from_request(request, use_path=slug)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/cms/utils/page.py", line 114, in get_page_from_request
    page_urls = list(page_urls)  # force queryset evaluation to save 1 query
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 434, in __iter__
    self._fetch_all()
    ~~~~~~~~~~~~~~~^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 2239, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
                         ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 98, in __iter__
    results = compiler.execute_sql(
        chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size
    )
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1624, in execute_sql
    cursor.execute(sql, params)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 122, in execute
    return super().execute(sql, params)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 79, in execute
    return self._execute_with_wrappers(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        sql, params, many=False, executor=self._execute
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 100, in _execute
    with self.db.wrap_database_errors:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/utils.py", line 94, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/home/jens/develop/django-cms-phi/.venv/lib/python3.13/site-packages/psycopg/cursor.py", line 117, in execute
    raise ex.with_traceback(None)
django.db.utils.ProgrammingError: column cms_pageurl.site_id does not exist
LINE 1: ...cms_pageurl"."language", "cms_pageurl"."page_id", "cms_pageu...
                                                             ^
HINT:  Perhaps you meant to reference the column "cms_pageurl.page_id" or the column "cms_page.site_id".

Additional information (CMS/Python/Django versions)

django CMS 5.1.2 django 6.1 Python 3.13.13

Do you want to help fix this issue?

  • [x ] Yes, I want to help fix this issue and I will join the channel #pr-reviews on the Discord Server to confirm with the community that a PR is welcome.
  • No, I only want to report the issue.