summaryrefslogtreecommitdiffstats
path: root/forum/models/question.py
diff options
context:
space:
mode:
Diffstat (limited to 'forum/models/question.py')
-rwxr-xr-xforum/models/question.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/forum/models/question.py b/forum/models/question.py
index 1c2cf749..f351dff0 100755
--- a/forum/models/question.py
+++ b/forum/models/question.py
@@ -1,6 +1,8 @@
from base import *
from tag import Tag
+from forum.utils.lists import LazyList
+
class QuestionManager(models.Manager):
def create_new(self, title=None,author=None,added_at=None, wiki=False,tagnames=None,summary=None, text=None):
question = Question(
@@ -98,17 +100,25 @@ class QuestionManager(models.Manager):
Questions with the individual tags will be added to list if above questions are not full.
"""
#print datetime.datetime.now()
- questions = list(self.filter(tagnames = question.tagnames, deleted=False).all())
- tags_list = question.tags.all()
- for tag in tags_list:
- extend_questions = self.filter(tags__id = tag.id, deleted=False)[:50]
- for item in extend_questions:
- if item not in questions and len(questions) < 10:
- questions.append(item)
+ manager = self
+
+ def get_data():
+ questions = list(manager.filter(tagnames = question.tagnames, deleted=False).all())
+
+ tags_list = question.tags.all()
+ for tag in tags_list:
+ extend_questions = manager.filter(tags__id = tag.id, deleted=False)[:50]
+ for item in extend_questions:
+ if item not in questions and len(questions) < 10:
+ questions.append(item)
+
+ #print datetime.datetime.now()
+ return questions
+
+ return LazyList(get_data)
+
- #print datetime.datetime.now()
- return questions
class Question(Content, DeletableContent):
title = models.CharField(max_length=300)