首页 > 解决方案 > wagtail - 显示类别的页面;如何?

问题描述

我想使用 wagtail 实现类别页面,但对于新手程序员来说很难理解。当只是按照 wagtail 的教程(入门)时,类别字段是在他们的官方教程中实现的,但我不知道如何获得访问权限

例如,在 Django 中,如果我定义了 Categories 和 Posts 之类的两个模型,我可以使用外键访问属于特定类别的文章,并使用 Category.posts_set.all() 之类的东西创建视图

但我怎么能在鹡鸰中做到这一点?提前感谢您的帮助

标签: djangowagtail

解决方案


如果您想列出来自例如类别索引页面的所有类别,那么您需要获取所有类别并将它们添加到上下文中。假设您的模型结构与https://docs.wagtail.io/en/latest/getting_started/tutorial.html#categories的教程中的相同,那么您可以这样做

class CategoryIndexPage(Page):
    
    # ... other fields go here

    def get_context(self, request, *args, **kwargs):
        context = super().get_context(request, *args, **kwargs)
        context["categories"] = BlogCategory.objects.all()
        return context

然后在您的模板中:

    {% if categories %}
        <h3>Categories</h3>
        <ul>
            {% for category in categories %}
                <li style="display: inline">
                    {% image category.icon fill-32x32 style="vertical-align: middle" %}
                    {{ category.name }}
                </li>
            {% endfor %}
        </ul>
    {% endif %}

推荐阅读