2017-07-07 3 views
0

ich das folgende Modell haben, die es einem Benutzer zu seiner Sitzung verknüpft:Objekte Get von Wert einer anderen Tabelle gefiltert

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

Jetzt möchte ich alle aktiven Sitzungen von den jeweiligen Benutzer erhalten.

Wie kann ich die folgende SQL in Django 1.10 tun?

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

Post die Modelle zu – Exprator

+0

Die zweite Tabelle ist die Standard-User-Modell von django – Chris

+0

atleast die Session Tabelle schreiben? – Exprator

Antwort

1

Ich nehme an, Sie wollen alle Sitzungen, die für einen bestimmten Benutzer nicht abgelaufen sind? Dann gäbe es keinen Grund für eine Unterabfrage. Fügen Sie einfach die Benutzer- und Sitzungstabelle hinzu und vergleichen Sie für das expire_date?

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

Das war's! Vielen Dank. – Chris

Verwandte Themen