Skip to content

Commit d17f822

Browse files
author
Mark Gibbs
committed
Neater object location
1 parent a47bd76 commit d17f822

File tree

2 files changed

+15
-22
lines changed

2 files changed

+15
-22
lines changed

django_plotly_dash/models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from django.db import models
22
from django.contrib import admin
33
from django.utils.text import slugify
4+
from django.shortcuts import get_object_or_404
45

56
from .dash_wrapper import get_stateless_by_name
67

@@ -62,6 +63,16 @@ def populate_values(self):
6263
obj = self._get_base_state()
6364
self.base_state = json.dumps(obj)
6465

66+
@staticmethod
67+
def locate_item(id, stateless=False):
68+
if stateless:
69+
da = get_stateless_by_name(id)
70+
else:
71+
da = get_object_or_404(DashApp,slug=id)
72+
73+
app = da.as_dash_instance()
74+
return da, app
75+
6576
class DashAppAdmin(admin.ModelAdmin):
6677
list_display = ['instance_name','app_name','slug','creation','update',]
6778
list_filter = ['app_name','creation','update',]

django_plotly_dash/views.py

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,12 @@
44
import json
55

66
from .models import DashApp
7-
from .dash_wrapper import get_stateless_by_name
87

98
def routes(*args,**kwargs):
109
raise NotImplementedError
1110

1211
def dependencies(request, id, stateless=False, **kwargs):
13-
if stateless:
14-
da = get_stateless_by_name(id)
15-
else:
16-
da = get_object_or_404(DashApp,slug=id)
17-
18-
app = da.as_dash_instance()
12+
da, app = DashApp.locate_item(id, stateless)
1913

2014
with app.app_context():
2115
mFunc = app.locate_endpoint_function('dash-dependencies')
@@ -24,22 +18,14 @@ def dependencies(request, id, stateless=False, **kwargs):
2418
content_type=resp.mimetype)
2519

2620
def layout(request, id, stateless=False, **kwargs):
27-
if stateless:
28-
da = get_stateless_by_name(id)
29-
else:
30-
da = get_object_or_404(DashApp,slug=id)
31-
app = da.as_dash_instance()
21+
da, app = DashApp.locate_item(id, stateless)
3222

3323
mFunc = app.locate_endpoint_function('dash-layout')
3424
resp = mFunc()
3525
return app.augment_initial_layout(resp)
3626

3727
def update(request, id, stateless=False, **kwargs):
38-
if stateless:
39-
da = get_stateless_by_name(id)
40-
else:
41-
da = get_object_or_404(DashApp,slug=id)
42-
app = da.as_dash_instance()
28+
da, app = DashApp.locate_item(id, stateless)
4329

4430
rb = json.loads(request.body.decode('utf-8'))
4531

@@ -62,11 +48,7 @@ def update(request, id, stateless=False, **kwargs):
6248
content_type=resp.mimetype)
6349

6450
def main_view(request, id, stateless=False, **kwargs):
65-
if stateless:
66-
da = get_stateless_by_name(id)
67-
else:
68-
da = get_object_or_404(DashApp,slug=id)
69-
app = da.as_dash_instance()
51+
da, app = DashApp.locate_item(id, stateless)
7052

7153
mFunc = app.locate_endpoint_function()
7254
resp = mFunc()

0 commit comments

Comments
 (0)