Try
logs = PrizeVerificationCodeSMSLog.objects.filter(winner__lucky_draw_id=id).order_by('-created_on')
winners = logs.select_related("winner")[:10]
This generates following query
SELECT "prizeverificationcodesmslog"."id", "prizeverificationcodesmslog"."winner_id",
"prizeverificationcodesmslog"."mobile_number", "prizeverificationcodesmslog"."created_on",
"winner"."id", "winner"."lucky_draw_id", "winner"."participation_id",
"winner"."prize_id", "winner"."mobile_number"
FROM "prizeverificationcodesmslog"
INNER JOIN "winner" ON ("prizeverificationcodesmslog"."winner_id" = "winner"."id")
WHERE "winner"."lucky_draw_id" = 1
ORDER BY "prizeverificationcodesmslog"."created_on"
DESC LIMIT 10;
I am not sure what are your requirements but you may want to agregate by Max PrizeVerificationCodeSMSLog
see https://docs.djangoproject.com/en/1.5/topics/db/aggregation/