Skip to content

Commit 43a66d5

Browse files
author
Mark Gibbs
committed
Use slugified form of all app names
1 parent 9f1e385 commit 43a66d5

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

django_plotly_dash/dash_wrapper.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from django.urls import reverse
55
from django.http import HttpResponse
6+
from django.utils.text import slugify
67

78
import json
89

@@ -15,13 +16,16 @@
1516
usable_apps = {}
1617

1718
def add_usable_app(name, app):
19+
name = slugify(name)
1820
global usable_apps
1921
usable_apps[name] = app
22+
return name
2023

2124
def get_stateless_by_name(name):
2225
'''
2326
Locate a registered dash app by name, and return a DelayedDash instance encapsulating the app.
2427
'''
28+
name = slugify(name)
2529
# TODO wrap this in raising a 404 if not found
2630
return usable_apps[name]
2731

django_plotly_dash/models.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ def save(self, *args, **kwargs):
3030
super(DashApp, self).save(*args,**kwargs)
3131

3232
def _stateless_dash_app(self):
33-
# TODO make this a property of the object
34-
dd = get_stateless_by_name(self.app_name)
33+
dd = getattr(self,'_stateless_dash_app_instance',None)
34+
if not dd:
35+
dd = get_stateless_by_name(self.app_name)
36+
setattr(self,'_stateless_dash_app_instance',dd)
3537
return dd
3638

3739
def as_dash_instance(self):

django_plotly_dash/templatetags/plotly_dash.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ def plotly_app(context, name=None, slug=None, da=None, ratio=0.1, use_frameborde
3232
if slug is not None:
3333
da = get_object_or_404(DashApp,slug=slug)
3434

35-
app = da.form_dash_instance()
35+
app = da.as_dash_instance()
3636
return locals()
3737

0 commit comments

Comments
 (0)