我目前有以下Javascript,我不确定我应该在评论区域中检查是否返回任何HTML?
$('#load-more').click(function() {
$.get('/load/friend/2'/, function(data) {
// If there is HTML returned, then $('#load-friend').append(data)
// Else $('#load-global').append(data)
});
});
获取查询/load/friend/2
,它返回Django中使用HttpResponse
呈现的render_to_response(template, context, RequestContext(request))
对象。
Django模板如下所示:
{% for review in reviews %}
// Code
{% endfor %}
所以当$ .get检索/ load / friend / 2和reviews = []时,我相信它应该返回一个空的HTML文档?
答案 0 :(得分:1)
在Django控制器中,如果reviews
为空,则返回http状态代码而不是视图模板:
if not reviews:
# 204 = "no content"
return HttpResponse(status=204)
在JavaScript中,使用jQuery的常规AJAX function来定义回调:
$('#load-more').click(function() {
$.ajax({
url: '/load/friend/2',
type: 'GET',
dataType: 'HTML',
success: function (data, textStatus, jqXHR) {
$('#load-friend').append(data);
},
statusCode: {
204: function () {
$('#load-global').append('<p>No reviews found.</p>');
}
}
});
});