You can't do this in one query in Django. You can get the customer with just the date of their most recent purchase like this:
from django.db.models import Max
customers = Customer.objects.annotate(Max('purchase__date'))
but you don't automatically get access to the actual purchase this way.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…