Saved dashboards
A set of SQL queries can be used to create a saved dashboard. Saved dashboards have URLs and support permissions, so you can specify which users are allowed to see which dashboard.
You can create a saved dashboard from the interactive dashboard interface (at /dashboard/
) - execute some queries, then scroll down to the “Save this dashboard” form.
View permissions
The following viewing permission policies are available:
private
: Only the user who created (owns) the dashboard can viewpublic
: Any user can viewunlisted
: Any user can view, but they need to know the URL (this feature is not complete)loggedin
: Any logged-in user can viewgroup
: Any user who is a member of theview_group
attached to the dashboard can viewstaff
: Any user who is staff can viewsuperuser
: Any user who is a superuser can view
Edit permissions
The edit policy controls which users are allowed to edit a dashboard - defaulting to the user who created that dashboard.
Editing currently takes place through the Django Admin - so only users who are staff members with access to that interface will be able to edit their dashboards.
The full list of edit policy options are:
private
: Only the user who created (owns) the dashboard can editloggedin
: Any logged-in user can editgroup
: Any user who is a member of theedit_group
attached to the dashboard can editstaff
: Any user who is staff can editsuperuser
: Any user who is a superuser can edit
Dashboards belong to the user who created them. Only Django super-users can re-assign ownership of dashboards to other users.
JSON export
If your dashboard is called /dashboards/demo/
you can add .json
to get /dashboards/demo.json
which will return a JSON representation of the dashboard.
The JSON format looks something like this:
{
"title": "Tag word cloud",
"queries": [
{
"sql": "select \"tag\" as wordcloud_word, count(*) as wordcloud_count from (select blog_tag.tag from blog_entry_tags join blog_tag on blog_entry_tags.tag_id = blog_tag.id\r\nunion all\r\nselect blog_tag.tag from blog_blogmark_tags join blog_tag on blog_blogmark_tags.tag_id = blog_tag.id\r\nunion all\r\nselect blog_tag.tag from blog_quotation_tags join blog_tag on blog_quotation_tags.tag_id = blog_tag.id) as results where tag != 'quora' group by \"tag\" order by wordcloud_count desc",
"rows": [
{
"wordcloud_word": "python",
"wordcloud_count": 826
},
{
"wordcloud_word": "javascript",
"wordcloud_count": 604
},
{
"wordcloud_word": "django",
"wordcloud_count": 529
},
{
"wordcloud_word": "security",
"wordcloud_count": 402
},
{
"wordcloud_word": "datasette",
"wordcloud_count": 331
},
{
"wordcloud_word": "projects",
"wordcloud_count": 282
}
],
}
]
}
Set the DASHBOARD_DISABLE_JSON
setting to True
to disable this feature.