@@ -10,6 +10,7 @@ class Node(mongoengine.Document):
10
10
parent = mongoengine .ReferenceField ('Node' )
11
11
12
12
_id_path = mongoengine .StringField ()
13
+ _keywords = mongoengine .ListField (mongoengine .StringField ())
13
14
14
15
meta = {
15
16
'allow_inheritance' : True ,
@@ -20,12 +21,16 @@ class Node(mongoengine.Document):
20
21
def pre_save (cls , sender , document , ** kwargs ):
21
22
if isinstance (document , Node ):
22
23
document ._id_path = '/' + '/' .join (document ._get_path ())
24
+ document ._keywords = document ._get_keywords ()
23
25
24
26
def _get_path (self ):
25
27
if self .parent == None :
26
28
return [unicode (self .id )]
27
29
return self .parent ._get_path () + [unicode (self .id )]
28
30
31
+ def _get_keywords (self ):
32
+ return [self .name ]
33
+
29
34
def __unicode__ (self ):
30
35
return unicode (self .name )
31
36
@@ -42,10 +47,16 @@ class Text(Document):
42
47
43
48
content = mongoengine .StringField ()
44
49
50
+ def _get_keywords (self ):
51
+ return [self .name , self .content ]
52
+
45
53
46
54
class Link (Document ):
47
55
48
56
url = mongoengine .URLField ()
49
57
58
+ def _get_keywords (self ):
59
+ return [self .name , self .url ]
60
+
50
61
51
62
signals .pre_save .connect (Node .pre_save )
0 commit comments