Wagtail 索引页面未显示 objects 个 children

Wagtail Index page not displaying objects of children

我在 wits-end 感觉我遗漏了一些简单的东西,但我一遍又一遍地看着它却无法弄清楚。

我有一个简单的 person_index_page,我想显示 child person_page objects,但无论我尝试什么...都没有。我有几个具有类似设置的网站,它们都有效。你能看看我下面的代码,看看你是否注意到我遗漏了什么?谢谢。

home_tags.py

# Person feed for home page and staff page
@register.inclusion_tag(
    'home/tags/person_listing_homepage.html',
    takes_context=True
)
def person_listing_homepage(context, count=3):
    people = PersonPage.objects.live().order_by('?')
    return {
        'people': people[:count].select_related('feed_image'),
        'request': context['request'],
    }

person_index_page.html

{% extends 'base.html' %}
{% load wagtailcore_tags wagtailimages_tags home_tags %}

{% block content %}
...

    {% include "home/tags/person_listing_homepage.html" %}

...
{% endblock %}

person_listing_homepage.html 可能应该在某个时候命名

{% for person in people %}
  {% include "home/includes/person_list_item.html" %}
{% endfor %}

person_list_item.html

{% load wagtailcore_tags wagtailimages_tags %}

{# Individual person item in a list - used on people index and home page #}
<a class="list-group-item" href="{% pageurl person %}">
  <div class="media">
    {% if person.feed_image %}
      <div class="media-left">
        {% image person.feed_image width-200 as img %} <img class="media-object" src="{{ img.url }}"/>
      </div>
    {% endif %}
    <div class="media-body">
      <h4 class="media-heading">{{ person.first_name }} {{ person.last_name }}</h4>
      {% if person.search_description %}
        <p>{{ person.search_description }}</p>
      {% endif %}
    </div>
  </div>
</a>

这更像是一个 "how to debug" 问题,而不是 Wagtail 问题。与其直接给你答案,下面是我要采取的过程:

你说在person_listing_homepage函数里面加print(people)不显示任何东西。因此,您的下一个问题应该是:"is this function being run at all?" 将打印语句更改为 print("GOT HERE")。你会发现这也没有显示任何东西——它告诉你函数不是 运行.

下一步是在函数 应该 被调用的地方添加一些调试输出 - 如果它也没有显示,你知道代码是也不是 运行,并且您必须继续提升一个级别,直到找到 运行 的东西。那么让我们寻找那个地方...

这就是您发现问题的地方。您永远不会在代码中的任何地方调用 person_listing_homepage 函数。您包括 person_listing_homepage.html 模板,但这不是一回事。 person_index_page.html 应该变成:

{% extends 'base.html' %}
{% load wagtailcore_tags wagtailimages_tags home_tags %}

{% block content %}
...

    {% person_listing_homepage %}

...
{% endblock %}