我正在尝试在我的项目中实现django-endless分页。简单的分页工作(“显示更多”)但Twitter风格(基于ajax)给我带来麻烦。
这是我的观点:
@page_template('userena/profil_page.html') # just add this decorator
def public_details(request, username=None,
template = 'userena/profil.html', extra_context=None):
user = get_object_or_404(get_user_model(), username__iexact=username)
userObjekat = User.objects.get(username=username)
user_profil = userObjekat.get_profile()
context = {
'projekti': user_profil.projekat_set.all(),
}
if extra_context is not None:
context.update(extra_context)
return userena_views.profile_detail(request, extra_context=context, username=username, template_name='userena/profil.html')
根据建议,我的模板分为2个部分,“主”模板和AJAX模板。这是主模板的一部分,它加载_page模板:
</li>
{% include page_template %}
</li>
和_page模板GETS包含 - 我可以看到内容。
_page template:
{% load endless %}
<li id="projektiTab">
<div class="ten columns">
<ul class="accordion">
{% paginate projekti %}
{% for projekat in projekti %}
<li>
<div class="title">
<h6> {{ projekat.naziv }}</h6>
</div>
<div class="content">
<p>{{ projekat.opis }}</p>
</div>
</li>
{% endfor %}
{% show_more %}
<li>
</div>
</li>
Javascripts也被加载(STATIC_URL正在工作)并且在我使用的页面源中:
<script src="/static/js/endless-pagination.js"></script>
<script>
$.endlessPaginate({
paginateOnScroll: true,
paginateOnScrollChunkSize: 5
});
</script>
毕竟,滚动分页不起作用。我做错了什么?
答案 0 :(得分:2)
我当然犯了一些“小”的错误,这些错误似乎微不足道,但事实并非如此。
主模板或包含page_template的父模板应包含以下内容:
<div class="endless_page_template">
{% include page_template %}
{% block js %}
{{ block.super }}
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="{{ STATIC_URL }}js/endless-pagination.js"></script>
<script>$.endlessPaginate();</script>
{% endblock %}
</div>
所以,它必须在特定班级的div中,我昨天忽略了这一点。
page_template 看起来像这样:
{% load endless %}
{% paginate projekti %}
{% for projekat in projekti %}
{{ projekat.name }}
{% endfor %}
{% show_pages %}
这当然可以用一些HTML来解决(在我的案例中是Zurb Foundation的手风琴元素)。最后但并非最不重要的 - 观点:
@page_template('userena/profil_strana.html') # name of the page_template
def public_details(request, username=None,
template = 'userena/profil.html', extra_context=None):
userObjekat = User.objects.get(username=username) # getting user object
user_profil = userObjekat.get_profile() # getting user's profile
context = {
'projekti': user_profil.projekat_set.all(), # and a list of objects to iterate thru
}
if extra_context is not None:
context.update(extra_context)
return userena_views.profile_detail(request, extra_context=context, username=username, template_name=template)
它有效。