2013-06-07 10 views
8

Sto tentando di creare una query in cui ottengo un elenco filtrato.La parola chiave django non può essere un'espressione

Il modello che io chiamo la query è:

class WorkoutRecord(models.Model): 

    challenge = models.ForeignKey(Challenge) 

    workout_email_sent = models.DateTimeField(default=datetime.now) 

    status = models.IntegerField(default=1) 

La mia domanda è:

messaggio
L = WorkoutRecord.objects.filter(status = 1, challenge.user = request.user, workout_email_sent__lt = today) 

L'errore che sto ottenendo è:

parola chiave puo' essere un'espressione

So che il problema si trova nella parte challenge.user = request.user della query ma non sono sicuro di come scrivere la query in modo che filtri correttamente su questo ForeignKey.

+0

Solo un consiglio amichevole - http://www.python.org/dev/peps/pep-0008/ :-) –

risposta

20

Usa __ a seguire relazioni di chiave esterna in un set di query:

L = WorkoutRecord.objects.filter(status=1, challenge__user=request.user, workout_email_sent__lt=today) 
+0

Perfetto! Grazie – bbrooke

+0

nice catch @PeterDeGlopper – karthikr

Problemi correlati