34 if obj.tag_list is not None: |
34 if obj.tag_list is not None: |
35 obj.tags = None # To avoid a second and useless db request |
35 obj.tags = None # To avoid a second and useless db request |
36 return ",".join(obj.tag_list) |
36 return ",".join(obj.tag_list) |
37 return ",".join([tag.name for tag in obj.tags.all()]) |
37 return ",".join([tag.name for tag in obj.tags.all()]) |
38 |
38 |
|
39 def index_queryset(self, using=None): |
|
40 "Used when the entire index for model is updated." |
|
41 return self.get_model().objects.prefetch_related("tags") |
|
42 |
39 |
43 |
40 class AnnotationIndex(indexes.SearchIndex, indexes.Indexable): |
44 class AnnotationIndex(indexes.SearchIndex, indexes.Indexable): |
41 text = indexes.CharField(document=True, use_template=True) |
45 text = indexes.CharField(document=True, use_template=True) |
42 tags = indexes.CharField(model_attr='tags', indexed=True, stored=False) |
46 tags = indexes.CharField(model_attr='tags', indexed=True, stored=False) |
43 title = indexes.CharField(model_attr='title', indexed=True, stored=True) |
47 title = indexes.CharField(model_attr='title', indexed=True, stored=True) |
48 def get_model(self): |
52 def get_model(self): |
49 return Annotation |
53 return Annotation |
50 |
54 |
51 def prepare_tags(self, obj): |
55 def prepare_tags(self, obj): |
52 return ",".join([tag.name for tag in obj.tags.all()]) |
56 return ",".join([tag.name for tag in obj.tags.all()]) |
|
57 |
|
58 def index_queryset(self, using=None): |
|
59 "Used when the entire index for model is updated." |
|
60 return self.get_model().objects.prefetch_related("tags") |
53 |
61 |
54 |
62 |
55 class ContentIndex(indexes.SearchIndex, indexes.Indexable): |
63 class ContentIndex(indexes.SearchIndex, indexes.Indexable): |
56 text = indexes.CharField(document=True, use_template=True) |
64 text = indexes.CharField(document=True, use_template=True) |
57 tags = indexes.CharField(model_attr='tags', indexed=True, stored=False, null=True) |
65 tags = indexes.CharField(model_attr='tags', indexed=True, stored=False, null=True) |
61 def get_model(self): |
69 def get_model(self): |
62 return Content |
70 return Content |
63 |
71 |
64 def prepare_tags(self, obj): |
72 def prepare_tags(self, obj): |
65 return ",".join([tag.name for tag in obj.tags.all()]) |
73 return ",".join([tag.name for tag in obj.tags.all()]) |
|
74 |
|
75 def index_queryset(self, using=None): |
|
76 "Used when the entire index for model is updated." |
|
77 return self.get_model().objects.prefetch_related("tags") |