我有多个映射到不同django模型的db表。现在我希望可以使用线程并行查询它们。例如:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True);
isATutor = models.BooleanField();
timeAvailable = models.CharField(max_length=3);
class TutorProfile(models.Model):
user = models.ForeignKey(User);
language = models.CharField(max_length=30);
unique_together = (("user", "language"), );
class Tutor(models.Model):
user = models.ForeignKey(User);
subject = models.CharField(max_length=30);
unique_together = (("user", "subject"), );
现在,我想查询UserProfile
字段的timeAvailable
表和TutorProfile
字段的language
表以及Tutor
subject
表的{{1}}表使用线程的字段。那我该怎么做呢?
答案 0 :(得分:1)
这只是一个划痕,但也许会有所帮助:
import threading
class PararellThread(threading.Thread):
def __init__(self,model):
threading.Thread.__init__(self)
self.model = model
self.result = []
def run(self):
self.result = self.model.objects.all()
def get_objects_in_pararell( models ):
threads = []
result = []
for model in models:
t = PararellThread(model)
t.start()
threads.append(t)
for thread in threads:
thread.join()
for obj in thread.result:
result.append(obj)
return result