【发布时间】:2010-05-06 18:41:09
【问题描述】:
在我正在处理的一些代码中,作者 max AJAX 调用了一个返回 JSON 的 Django 视图。
一旦 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')
...但似乎应该有更好的方法。
有什么想法吗?
【问题讨论】:
-
不确定它是否有效,但你可以使用“包含”吗?假设您仍然需要 ajax 调用。
标签: javascript django