无限滚动条在Django中无法正常工作

6

我问了这个问题已经有很长时间了,但仍然没有得到答案。我正在尝试使用Django添加无限下滚加载,但以下代码无法正常工作。我只是将文章按10个进行分页,然后它只会显示加载图标。当我向下滚动时,它不起作用。你们能想出这里出了什么问题吗?

views.py

class PostListView(ListView):
    model = Post
    context_object_name = 'post_list' 
    paginate_by = 10

    def get_queryset(self):
        return Post.objects.filter(create_date__lte=timezone.now()).order_by('-create_date')

postlist.html

{% extends 'base.html' %}
{% block content %}


 <div class="container">
                <div class="row infinite-container">
                    {% for post in post_list%}
                        <div class="col-md-6 infinite-item">
                            <div class="card mb-4 shadow-sm">
                                <img class="img-thumbnail"  src="{{post.image.url}}"/>
                                <div class="card-body">
                                    <h5>{{post.title}}</h5>
                                    <p class="card-text">
                                        {{post.description|truncatewords:20}}
                                    </p>
                                </div>
                            </div>
                        </div>
                    {% endfor %}
                </div>
                {% if page_obj.has_next %}
                true #this is showing me true it also means that it has next page.
                <a class="infinite-more-link" href="?page={{page_obj.next_page_number}}"></a>
                {% endif %}
                <div class="d-flex justify-content-center" style="display:none;">
                    <div class="spinner-border" role="status">
                        <span class="sr-only">Loading...</span>
                    </div>
                </div>
            </div>

 <script src="/static/js/jquery-2.2.4.min.js"></script>
    <script src="/static/js/jquery.waypoints.min.js"></script>
    <script src="/static/js/infinite.min.js"></script>
    <script>
    var infinite = new Waypoint.Infinite({
        element: $('.infinite-container')[0],
        handler: function(direction) {

    },
    offset: 'bottom-in-view',

    onBeforePageLoad: function () {
    $('.spinner-border').show();
    },
    onAfterPageLoad: function () {
    $('.spinner-border').hide();
    }

    });

    </script>


{% endblock content %}

如果需要更多信息,请在评论区告诉我,我会更新我的问题并提供所需的信息。

你能否发布URL和完整的错误信息? - Ekrem Üçüncü
1个回答

4

我忘记加载静态文件了,通过添加以下代码加载:

{% load static%}

内容块下方

<script src="{% static '/static/js/jquery-2.2.4.min.js'%}"></script>
    <script src="{% static '/static/js/jquery.waypoints.min.js'%}"></script>
    <script src="{% static '/static/js/infinite.min.js'%}"></script>

很酷能接受自己的答案,但这并不是解决方案,因为您没有使用静态标签。至少在您展示的代码中没有。 - user1600649
是的,抱歉我忘记添加了,我很快就会编辑。 - Ahmed Yasin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接