4

さまざまな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"), );

ここで、スレッドを使用して、テーブルをフィールドに、テーブルをフィールドに、テーブルUserProfiletimeAvailableフィールドにクエリしたいとします。では、どうすればよいですか?TutorProfilelanguageTutorsubject

4

1 に答える 1

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
于 2012-09-22T10:21:38.237 に答える