【发布时间】:2014-06-30 06:36:40
【问题描述】:
所以我尝试在我的项目中使用 ajax 实现 Twitter 样式的分页,但是当我单击 show_more 时它卡住了。它只是更改为标签“正在加载”并且不显示任何新条目。 视图.py
def view_dates(request, check, template = 'dates.html',page_template = 'dates_table.html'):
check = Check.objects.get(id = check)
dates = Date.objects.filter(check_id = check).order_by('-date').select_related('check').annotate(status = Min('result__status'))
context = {
'dates': dates,
'check': check,
'page_template': page_template}
if request.is_ajax():
template = page_template
return render_to_response(template, context, context_instance=RequestContext(request))
日期.html
{% paginate 16 dates %}
<br>
<table class = 'table table-hover'>
<tr>
<td>Date</td>
<td>Status</td>
<td></td>
</tr>
<div class="endless_page_template">
{% include page_template %}
</div>
</table>
{% show_more %}
</body>
{% block js %}
{{ block.super }}
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://yourjavascript.com/337923491/endless.js" charset="utf-8"></script>
<script type="text/javascript" src="http://yourjavascript.com/151379951/endless-pagination.js"></script>
<script>
$.endlessPaginate({paginateOnScroll: true,
endless_on_scroll_margin : 10,
paginateOnScrollChunkSize: 5
});</script>
{% endblock %}
page_template - dates_table.html
{% load date_extras %}
{% block table %}
{% for date in dates %}
<tr>
<td>
<button type="button" class="btn btn-link" onclick="location.href='/checks/{{ date.check_id }}/{{ date.id }}/results/'">
{{ date.date|format }}
</button>
</td>
<td>
{% if date.status == True %}
<span class="glyphicon glyphicon-ok"></span>
{% else %}
<span class="glyphicon glyphicon-remove"></span>
{% endif %}
</td>
<td><a href='/checks/{{ date.check_id }}/{{ date.id }}/delete/'><span class="glyphicon glyphicon-trash"></span></a>
</td>
</tr>
{% endfor %}
</table>
{% endblock %}
应该是什么问题?
【问题讨论】:
-
当无限分页实际执行 ajax 请求时,您可能遇到了异常。检查日志或控制台。我可以看到的一个问题是,如果
request.is_ajax您应该将响应返回为 json。 -
你知道,当我删除 if request.is_ajax 语句时,ajax 实际上开始工作,但它加载了多个滚动的 dates.html 页面。所以,我的页面模板似乎有问题
-
是的,可能只是尝试直接渲染页面模板,例如在视图调用中更改
template='dates_table.html',它会喷出错误。
标签: ajax django django-endless-pagination