В некотором коде, над которым я работаю, автор max AJAX вызывает представление Django, которое возвращает JSON.
Как только JSON будет извлечен, он будет внедрен в страницу с функцией, которая выглядит следующим образом (обратите внимание, это упрощение, но я уверен, что вы знаете, что я получаю здесь):
function build_event_listing(events) {
var html = '';
for(int i = 0; i < events.length; i++) {
event = events[i];
html += "<h2>" + event.title + "</h2>\n";
html += "<p>" + event.description + "</p>";
html += "Click <a href='/event/view/" + event.id + "'>here<a> for more info.";
}
events_div.html(html);
}
Мне действительно не нравится этот подход. Чтобы изменить внешний вид каждого списка событий, дизайнеру придется изменить этот уродливый JS. Я бы предпочел использовать систему шаблонов Django, но мне интересно, как я могу это сделать?
У меня была идея написать вид так:
def view_listings(req):
events = models.Event.objects.all()
html = []
for event in events:
html.append(
render_to_string('event/single_event.html', {
'event': event,
}, context_instance=RequestContext(req))
return HttpResponse(''.join(html), mimetype='text/html')
... но кажется, что должен быть лучший способ.
Есть идеи?