diff --git a/datasette/views/table.py b/datasette/views/table.py index f73b0957..e80ed217 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -229,7 +229,7 @@ class TableView(DataView): if redirect_params: return self.redirect( request, - path_with_added_args(request, redirect_params), + self.ds.urls.path(path_with_added_args(request, redirect_params)), forward_querystring=False, ) @@ -237,13 +237,15 @@ class TableView(DataView): if "_sort_by_desc" in request.args: return self.redirect( request, - path_with_added_args( - request, - { - "_sort_desc": request.args.get("_sort"), - "_sort_by_desc": None, - "_sort": None, - }, + self.ds.urls.path( + path_with_added_args( + request, + { + "_sort_desc": request.args.get("_sort"), + "_sort_by_desc": None, + "_sort": None, + }, + ) ), forward_querystring=False, ) diff --git a/tests/test_html.py b/tests/test_html.py index aec7e2f2..4f62432f 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -801,6 +801,16 @@ def test_base_url_config(app_client_base_url_prefix, path, use_prefix): ) +def test_base_url_affects_filter_redirects(app_client_base_url_prefix): + path = "/fixtures/binary_data?_filter_column=rowid&_filter_op=exact&_filter_value=1&_sort=rowid" + response = app_client_base_url_prefix.get(path) + assert response.status == 302 + assert ( + response.headers["location"] + == "/prefix/fixtures/binary_data?_sort=rowid&rowid__exact=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