ゴール:
ここでは、指定されたIDの取引をフィルタリングしており、それらの中から最新の日付の取引を選択します。
contact.deal_set.filter(deal_id=deal_id).aggregate(Max('deal_start_datetime'))
ただし、これは最大日付を含む辞書のみを返します。でも列が必要です。私は何が間違っているのですか?
ゴール:
ここでは、指定されたIDの取引をフィルタリングしており、それらの中から最新の日付の取引を選択します。
contact.deal_set.filter(deal_id=deal_id).aggregate(Max('deal_start_datetime'))
ただし、これは最大日付を含む辞書のみを返します。でも列が必要です。私は何が間違っているのですか?
djangoクエリセットに提供される.latestメソッドを使用します。
たとえば、特定の場合:
contact.deal_set.filter(deal_id = deal_id).latest('deal_start_datetime')
Djangoドキュメント:https ://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
これを使って
contact.deal_set.filter(deal_id=deal_id).order_by('-deal_start_datetime')
これにより、クエリセットdeal_start_datetime
が逆に並べ替えられます。0番目の要素が最新の要素であり、次のように取得できます。
latest_contact = contact.deal_set.filter(deal_id=deal_id).order_by('-deal_start_datetime')[0]