2017-10-11 14 views
0

zurückgeben Ich lerne Django-Framework, und derzeit habe ich ein Problem.django den letzten Datensatz von jedem Benutzer

Es gibt zwei Modelle

class User(models.Model): 
    name = models.CharField(max_length=30) 
    ... 

class Action(models.Model): 
    user = models.Foreign(User) 
    action = models.CharField(max_length=30) 
    createTime = models.DateTimeField(default=django.utils.timezone.now) 

Jede Aktion von jedem Benutzer in Aktion Modell eingeführt wird, daher gibt es viele Aufzeichnungen der einzelnen Benutzer in Aktion durch verschiedene create.

Nun möchte ich die neueste Aktion jedes Benutzers auflisten, aber ich habe keine Idee, es zu implementieren.

Antwort

0

Sie können Action Abfrage mit dem Benutzer, den Sie Informationen wollen, wie diese

actions = Action.objects.filter(user=selected_user).order_by("-createTime") 

Diese Benutzeraktionen nach Datum sortieren wird in absteigender Reihenfolge, die neueste Aktion zu erhalten:

actions.first() 
0

Try etwas wie:

from django.db.models import F, Max 


actions = Action.objects.annotate(
    most_recent=Max('user__action__createTime') 
).filter(createTime=F('most_recent')) 
Verwandte Themen