Как получить объект по имени и максимальной метке времени

Я хочу получить транзакцию, принадлежащую external_id=1 и имеющую самую высокую временную метку.

Я пробовал это

max_rating = Transaction.objects.aggregate(organisation_id_from_partner=organisation_id, highest_timestamp=Max('timestamp'))

Но я получаю TypeError: QuerySet.aggregate() received non-expression(s): 1.

Внутри агрегата можно написать только функцию Aggregate. Попробуйте это

max_rating = Transaction.objects.filter(organisation_id_from_partner=organisation_id).order_by('-timestamp').first()

Вы можете немного сократить ответ @shafik, используя .latest(…) [Django-doc]:

max_rating = Transaction.objects.filter(
    organisation_id_from_partner=organisation_id
).latest('timestamp')
Вернуться на верх