From 470c7d32153f59bda1a38e971101038b9d7ebc96 Mon Sep 17 00:00:00 2001 From: cloudyun888 <15502132060@163.com> Date: Wed, 22 Apr 2026 23:13:29 +0800 Subject: [PATCH] fix: preserve base_url in database query redirects --- datasette/views/database.py | 2 +- tests/test_html.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/datasette/views/database.py b/datasette/views/database.py index faf870d032..09b3cf063b 100644 --- a/datasette/views/database.py +++ b/datasette/views/database.py @@ -57,7 +57,7 @@ async def get(self, request, datasette): sql = (request.args.get("sql") or "").strip() if sql: - redirect_url = "/" + request.url_vars.get("database") + "/-/query" + redirect_url = datasette.urls.database(database) + "/-/query" if request.url_vars.get("format"): redirect_url += "." + request.url_vars.get("format") redirect_url += "?" + request.query_string diff --git a/tests/test_html.py b/tests/test_html.py index e38898da7a..2870671679 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -929,6 +929,12 @@ def test_base_url_affects_filter_redirects(app_client_base_url_prefix): ) +def test_base_url_affects_database_query_redirects(app_client_base_url_prefix): + response = app_client_base_url_prefix.get("/fixtures?sql=select+1") + assert response.status_code == 302 + assert response.headers["location"] == "/prefix/fixtures/-/query?sql=select+1" + + def test_base_url_affects_metadata_extra_css_urls(app_client_base_url_prefix): html = app_client_base_url_prefix.get("/").text assert '' in html