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 1717 id,
1818 name
1919 },
20- role {
20+ roles {
21+ edges {
22+ node {
23+ id,
24+ name
25+ }
26+ }
27+ },
28+ leader {
2129 id,
2230 name
2331 }
32+ tasks {
33+ edges {
34+ node {
35+ id,
36+ name,
37+ deadline
38+ }
39+ }
40+ }
2441 }
2542 }
2643 }
Original file line number Diff line number Diff line change 11from mongoengine import connect
22
3- from models import Department , Employee , Role
3+ from models import Department , Employee , Role , Task
44
55connect ('graphene-mongo-example' , host = 'mongomock://localhost' , alias = 'default' )
66
@@ -19,12 +19,31 @@ def init_db():
1919 engineer = Role (name = 'engineer' )
2020 engineer .save ()
2121
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' )
2724
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+ )
2931 tracy .save ()
3032
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 11from datetime import datetime
2- from mongoengine import Document
2+ from mongoengine import Document , EmbeddedDocument
33from mongoengine .fields import (
4- DateTimeField , ReferenceField , StringField ,
4+ DateTimeField , EmbeddedDocumentField ,
5+ ListField , ReferenceField , StringField ,
56)
67
78
89class Department (Document ):
10+
911 meta = {'collection' : 'department' }
1012 name = StringField ()
1113
1214
1315class Role (Document ):
16+
1417 meta = {'collection' : 'role' }
1518 name = StringField ()
1619
1720
21+ class Task (EmbeddedDocument ):
22+
23+ name = StringField ()
24+ deadline = DateTimeField (default = datetime .now )
25+
26+
1827class Employee (Document ):
28+
1929 meta = {'collection' : 'employee' }
2030 name = StringField ()
2131 hired_on = DateTimeField (default = datetime .now )
2232 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 44from models import Department as DepartmentModel
55from models import Employee as EmployeeModel
66from models import Role as RoleModel
7+ from models import Task as TaskModel
78
89class Department (MongoengineObjectType ):
910
@@ -19,6 +20,12 @@ class Meta:
1920 interfaces = (Node ,)
2021
2122
23+ class Task (MongoengineObjectType ):
24+
25+ class Meta :
26+ model = TaskModel
27+ interfaces = (Node ,)
28+
2229class Employee (MongoengineObjectType ):
2330
2431 class Meta :
You can’t perform that action at this time.
0 commit comments