diff --git a/datasette/app.py b/datasette/app.py index df97f8ce..5973b3cd 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -289,6 +289,13 @@ class BaseView(RenderMixin): name, sql, params, truncate=True, **extra_args ) columns = [r[0] for r in description] + + templates = ['query-{}.html'.format(to_css_class(name)), 'query.html'] + if canned_query: + templates.insert(0, 'query-{}-{}.html'.format( + to_css_class(name), to_css_class(canned_query) + )) + return { 'database': name, 'rows': rows, @@ -304,7 +311,7 @@ class BaseView(RenderMixin): 'named_parameter_values': named_parameter_values, 'editable': editable, 'canned_query': canned_query, - }, ('query-{}.html'.format(to_css_class(name)), 'query.html') + }, templates class IndexView(RenderMixin): diff --git a/docs/custom_templates.rst b/docs/custom_templates.rst index 388cdadd..20c2a0bd 100644 --- a/docs/custom_templates.rst +++ b/docs/custom_templates.rst @@ -112,6 +112,11 @@ The lookup rules Datasette uses are as follows:: query-mydatabase.html query.html + Canned query page (/mydatabase/canned-query): + query-mydatabase-canned-query.html + query-mydatabase.html + query.html + Table page (/mydatabase/mytable): table-mydatabase-mytable.html table.html