Вот мой взгляд:
def rsvp_list(request, id, template="rsvp/rsvp_list.html"):
rsvp = RSVP.objects.get(id=id)
return render_to_response(template, {
'attendees': rsvp.attendee_set.all().order_by('email__first_name'),
}, context_instance=RequestContext(request))
, а вот мой шаблон:
{% for attendee in attendees %}
{{ attendee.email.get_name }}{{ attendee.guests }}
{% endfor %}
Когда запрос выполняется, шаблон затем запускает запрос для каждого участника, чтобы получить их первыйфамилия (получить имя просто соединяет два).Вот пример запроса, который django запускает из шаблона:
SELECT `rsvp_email`.`id`, `rsvp_email`.`added`, `rsvp_email`.`first_name`, `rsvp_email`.`last_name`, `rsvp_email`.`address` FROM `rsvp_email` WHERE `rsvp_email`.`id` = 1038
Как я могу получить имя и фамилию каждого участника, это первый запрос, не повторяющий его 400 раз в шаблоне?