【问题标题】:Wagtail Index page not displaying objects of children鹡鸰索引页面不显示儿童的对象
【发布时间】:2016-09-22 16:39:27
【问题描述】:

我不知所措,觉得我错过了一些简单的东西,但我一遍又一遍地看它,却无法弄清楚。

我有一个简单的 person_index_page 我想显示子 person_page 对象,但无论我尝试什么......什么都没有。我有几个具有类似设置的站点并且它们可以工作。你能看看我下面的代码,看看你是否注意到我遗漏了什么?谢谢。

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>

【问题讨论】:

  • 您是否尝试过在person_listing_homepage 函数中添加print(people) 行,以确定问题出在查询中还是在呈现中?
  • 不,我没有 - 我会这样做,然后再报告。谢谢。
  • @gasman 什么都没有……甚至没有错误。关于如何追踪这一点的任何想法?谢谢。

标签: django django-templates django-views wagtail


【解决方案1】:

这更像是一个“如何调试”的问题,而不是 Wagtail 问题。而不是直接给你答案,这是我要采取的过程:

您说在person_listing_homepage 函数中添加print(people) 不会显示任何内容。所以,你的下一个问题应该是:“这个函数是否正在运行?”将打印语句更改为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 %}

【讨论】:

  • 感谢您抽出时间帮助我自助。仍在建立我的印章,这是一个非常有帮助的答案。
猜你喜欢
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多