2017-10-11 15 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

あなたはこの

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

のようにこれは、最新のアクションを取得するために、降順で日付別ユーザーアクションをソートします、あなたは上の情報が欲しいユーザーにActionを照会することができます

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')) 
関連する問題