3

私はこのようなモデルを持っています:

models.py

class Talk_comment(models.Model):
    user = models.ForeignKey(User_info, null=True)
    talk = models.ForeignKey(Talk)
    comment = models.CharField(max_length=500)

class Talk(models.Model):
    user = models.ForeignKey(User_info, null=True)
    title = models.CharField(max_length=150)
    slug = models.SlugField(max_length=50)

Talk_comment の場合、私の DB は次のようになります。

id | user_id | talk_id | comment
1    10        45        first comment
2    5         45        second comment
3    5         45        third comment
4    10        45        fourth comment

ここで、ユーザーの最大 ID (最大 'id'、'user_id' でグループ化) の行を取得したいと考えています。

この場合、ID「3」と「4」の行が必要です。

これを取得するには、ビューに次のコードがあります。

ビュー.py

qs = Talk_comment.objects.values('user').annotate(Max('id'))

今、私のテンプレートでは、次のものが必要です: これを取得するには?? 助けてください

template.html

{% for x in qs %}
    <li>
        {{ x.comment }} in talk {{ x.talk.title }}
    </li>
{% endfor %}
4

2 に答える 2

3

これに対する解決策を見つけました。views.py の新しいクエリセットは次のようになります。

id_list = Talk_comment.objects.filter(user=user_info_obj).values('user','talk').annotate(Max('id')).values('id__max')
qs = Talk_comment.objects.filter(pk__in=id_list)
于 2013-07-25T14:20:45.457 に答える