获取按另一个表的值过滤的对象

时间:2017-07-07 08:14:33

标签: python django python-3.x

我有以下模型将用户链接到他的会话:

class UserSession(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    session = models.ForeignKey(Session)

现在我想从给定用户那里获得所有活动会话。

如何在Django 1.10中执行以下SQL?

SELECT * FROM django_session WHERE session_key IN (SELECT session_id FROM usersys_usersession WHERE user_id = 1) AND expire_date > now()

1 个答案:

答案 0 :(得分:0)

我假设你想要给定用户的所有会话都没有过期?那么子查询就没有理由了。只需加入用户和会话表,并比较expire_date?

UserSession.objects.filter(user_id = 1, session__expire_data__gt = timezone.now())