0
私は、次の2つの機種があります。Djangoのモデルのクエリ
class User(models.Model):
user_id = models.IntegerField(null=True)
name = models.CharField(max_length=50)
class Blog(models.Model):
id = models.IntegerField(primary_key=True)
user = models.ForeignKey(User, null=True)
timestamp = models.DateTimeField()
がどのように私は、次の形成を持っているオブジェクトのリストを取得するにはDjangoのモデルクエリを書くことができます -
[(user_object, number of blog posts of this user), ...]
にこのリストをされます降順であるはずです。基本的には、ユーザーが書き込んだブログ記事の数についての情報を取得したいと考えています。
2人のユーザーが同数のブログ投稿を持っているため、作成したブログポストの最新のタイムスタンプに基づいて並べ替える必要があります。
これまでのところ、私は以下のことを試してみて、私のアプローチでは失敗しました。
user = User.objects.all()
serializer = UserSerializer(user, many=True)
user = list(serializer.data)
user_ranks = [(key, len(list(group))) for key, group in groupby(user)]
user_ranks = sorted(user_ranks, key=lambda x: x[1], reverse=True)
timestamp
のコードを上記のコードと比較してプラグインする方法がわかりません。また、これを達成するより良い方法がありますか?
PS:User
のエントリ数は、エントリの数と同じであるBlog
'timestamp'部分をどのように扱いますか? –
https://stackoverflow.com/questions/844591/how-to-do-select-max-in-django – DisneylandSC
また、ユーザーモデルに最新のブログ投稿を記録することもできます。次に、単純に.orderby() – DisneylandSC