File tree Expand file tree Collapse file tree 4 files changed +66
-12
lines changed
examples/flask_mongoengine Expand file tree Collapse file tree 4 files changed +66
-12
lines changed Original file line number Diff line number Diff line change 17
17
id,
18
18
name
19
19
},
20
- role {
20
+ roles {
21
+ edges {
22
+ node {
23
+ id,
24
+ name
25
+ }
26
+ }
27
+ },
28
+ leader {
21
29
id,
22
30
name
23
31
}
32
+ tasks {
33
+ edges {
34
+ node {
35
+ id,
36
+ name,
37
+ deadline
38
+ }
39
+ }
40
+ }
24
41
}
25
42
}
26
43
}
Original file line number Diff line number Diff line change 1
1
from mongoengine import connect
2
2
3
- from models import Department , Employee , Role
3
+ from models import Department , Employee , Role , Task
4
4
5
5
connect ('graphene-mongo-example' , host = 'mongomock://localhost' , alias = 'default' )
6
6
@@ -19,12 +19,31 @@ def init_db():
19
19
engineer = Role (name = 'engineer' )
20
20
engineer .save ()
21
21
22
- peter = Employee (name = 'Peter' , department = engineering , role = engineer )
23
- peter .save ()
24
-
25
- roy = Employee (name = 'Roy' , department = engineering , role = engineer )
26
- roy .save ()
22
+ debug = Task (name = 'Debug' )
23
+ test = Task (name = 'Test' )
27
24
28
- tracy = Employee (name = 'Tracy' , department = hr , role = manager )
25
+ tracy = Employee (
26
+ name = 'Tracy' ,
27
+ department = hr ,
28
+ roles = [engineer , manager ],
29
+ tasks = []
30
+ )
29
31
tracy .save ()
30
32
33
+ peter = Employee (
34
+ name = 'Peter' ,
35
+ department = engineering ,
36
+ leader = tracy ,
37
+ roles = [engineer ],
38
+ tasks = [debug , test ]
39
+ )
40
+ peter .save ()
41
+
42
+ roy = Employee (
43
+ name = 'Roy' ,
44
+ department = engineering ,
45
+ leader = tracy ,
46
+ roles = [engineer ],
47
+ tasks = [debug ]
48
+ )
49
+ roy .save ()
Original file line number Diff line number Diff line change 1
1
from datetime import datetime
2
- from mongoengine import Document
2
+ from mongoengine import Document , EmbeddedDocument
3
3
from mongoengine .fields import (
4
- DateTimeField , ReferenceField , StringField ,
4
+ DateTimeField , EmbeddedDocumentField ,
5
+ ListField , ReferenceField , StringField ,
5
6
)
6
7
7
8
8
9
class Department (Document ):
10
+
9
11
meta = {'collection' : 'department' }
10
12
name = StringField ()
11
13
12
14
13
15
class Role (Document ):
16
+
14
17
meta = {'collection' : 'role' }
15
18
name = StringField ()
16
19
17
20
21
+ class Task (EmbeddedDocument ):
22
+
23
+ name = StringField ()
24
+ deadline = DateTimeField (default = datetime .now )
25
+
26
+
18
27
class Employee (Document ):
28
+
19
29
meta = {'collection' : 'employee' }
20
30
name = StringField ()
21
31
hired_on = DateTimeField (default = datetime .now )
22
32
department = ReferenceField (Department )
23
- role = ReferenceField (Role )
24
-
33
+ roles = ListField (ReferenceField (Role ))
34
+ leader = ReferenceField ('Employee' )
35
+ tasks = ListField (EmbeddedDocumentField (Task ))
Original file line number Diff line number Diff line change 4
4
from models import Department as DepartmentModel
5
5
from models import Employee as EmployeeModel
6
6
from models import Role as RoleModel
7
+ from models import Task as TaskModel
7
8
8
9
class Department (MongoengineObjectType ):
9
10
@@ -19,6 +20,12 @@ class Meta:
19
20
interfaces = (Node ,)
20
21
21
22
23
+ class Task (MongoengineObjectType ):
24
+
25
+ class Meta :
26
+ model = TaskModel
27
+ interfaces = (Node ,)
28
+
22
29
class Employee (MongoengineObjectType ):
23
30
24
31
class Meta :
You can’t perform that action at this time.
0 commit comments