当我在for循环中添加{%include%}标记时,元素消失

Zor*_*gan 6 python django

这是我的评论查询集的模板代码:

{% block comments %}
{% load el_pagination_tags %}
    {% paginate 10 comment_list %}
        {% for i in comment_list %}
            <div class='comment_div'>
                <div class="left_comment_div">
                    <p>{{ i.comment_text }}</p>
                </div>
            </div>
            {% include 'comment/comments.html' with comment_list=i.replies.all %}
        </div>
        {% endfor %}
    {% show_more %}  
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我正在使用django el pagination来实现ajax分页.在第3行,您可以看到我最初加载10条评论.使用这个包,{% show_more %} 我可以添加一个元素,当点击它时,将加载其余的注释.

但是,{% show_more %}当我添加时,这个元素因某种原因而消失{% include 'comment/comments.html' with comment_list=i.replies.all %}.对于上下文,此include标记显示for循环中当前注释的回复.

有没有人知道为什么这个包含标签会影响{% show_more %}元素?

编辑:下面是显示Github Source的相关代码show_more

el_pagination_tags.py

# show the template only if there is a next page
if page.has_next():
    print('Has next') #doesn't print
    request = context['request']
    page_number = page.next_page_number()
    # Generate the querystring.
    querystring_key = data['querystring_key']
    querystring = utils.get_querystring_for_page(
        request, page_number, querystring_key,
        default_number=data['default_number'])
    return {
        'label': label,
        'loading': loading,
        'class_name': class_name,
        'path': iri_to_uri(data['override_path'] or request.path),
        'querystring': querystring,
        'querystring_key': querystring_key,
        'request': request,
    }
# No next page, nothing to see.
print('No next') #prints for every comment (e.g. 20 times when 20 comments)
return {}
Run Code Online (Sandbox Code Playgroud)

我是否可以更改上述代码中的某些内容以使其正常工作,或者进一步调试以帮助我找到有关该问题的更多信息?帮助赞赏.

Zor*_*gan 2

if通过为我的标签添加一条语句来解决,include如下所示:

        {% if i.replies.all %}
            {% include 'comment/comments.html' with comment_list=i.replies.all %}
        {% else %}
Run Code Online (Sandbox Code Playgroud)

仅当该评论有 1 个或多个回复时才添加包含标签。以前,如果没有回复,它会添加一个空查询集,从而导致代码错误。