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 %}
我在 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 %}