从另一个查询集中获取查询集。 Django的

时间:2012-11-05 12:26:34

标签: django django-models

在我的django应用程序中,我有一个模型“匹配”,链接到我的模型“用户”与外键。我还有一个函数,它给我一个query_set“live_matches”(当前播放的匹配)。

我尝试拥有的是一个包含“live_matches”所有用户的query_set。

这是我的models.py:

class LiveMatchManager(models.Manager):
    def get_query_set(self):
        now = timezone.localtime(timezone.now())
        queryset = super(LiveMatchManager, self).get_query_set()
        return queryset.filter(match__date_start__lte=now, match__date_end__gte=now)

class Match(models.Model):
    user = models.ForeignKey(User)
    date_start = models.DateTimeField()
    date_end = models.DateTimeField()

# Managers
objects = models.Manager()
live_matches = LiveMatchManager()

我想要的是一个函数,它为我提供了一个链接到“live_match”的用户的query_set,我找不到如何做到这一点。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

#returns all users, linked to live_matches
>>>User.objects.filter(match__in=Match.live_matches.all())
[<User: user1>, <User: user2>, <User: user3>]