diff --git a/datasette/app.py b/datasette/app.py index e4475a85..3e2cf42a 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -58,8 +58,8 @@ class BaseView(HTTPMethodView): r.headers['Access-Control-Allow-Origin'] = '*' return r - def redirect(self, request, path): - if request.query_string and '?' not in path: + def redirect(self, request, path, forward_querystring=True): + if request.query_string and '?' not in path and forward_querystring: path = '{}?{}'.format( path, request.query_string ) @@ -435,7 +435,11 @@ class TableView(BaseView): # Handle ?_filter_column and redirect, if present redirect_params = filters_should_redirect(special_args) if redirect_params: - return self.redirect(request, path_with_added_args(request, redirect_params)) + return self.redirect( + request, + path_with_added_args(request, redirect_params), + forward_querystring=False + ) filters = Filters(sorted(other_args.items())) where_clauses, params = filters.build_where_clauses() diff --git a/datasette/templates/table.html b/datasette/templates/table.html index 70860fce..06a6c71f 100644 --- a/datasette/templates/table.html +++ b/datasette/templates/table.html @@ -34,6 +34,7 @@