您可能只想在这里使用原始sql,raw()
manager方法可简化此操作,使您可以从查询中返回模型实例。唯一的技巧是原始查询需要包含主键。这可能应该对您有用(除非您将主键设置为以外的其他值id
):
latest_phone_numbers = Person.objects.raw('''
SELECT p1.id, p1.name, p1.phone, p1.created
FROM person_person p1, (
SELECT name, MAX(created) AS max_created
FROM person_person
GROUP BY name
) AS p2
WHERE p1.name = p2.name AND p1.created = p2.max_created
''')