2017-10-11 124 views
0

我正在学习django框架,目前我正面临一个问题。django返回每个用户的最近记录

有两种型号

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) 

从每个用户的每个动作插入操作模式,因此,有很多的动作每个用户通过不同createTime的记录。

现在,我想列出每个用户的最新动作,但我不知道实现它。

回答

0

您可以查询Action你想要的信息的用户,这样

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

这将降序排列按日期用户操作进行排序,得到最新的动作:

actions.first() 
0

尝试例如:

from django.db.models import F, Max 


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