如何在分类列表页面显示分类名称?
How to show the category name on the category listing page?
我已经在我的基本网站上使用 Wagtail 一段时间了,但在大流行期间,我不得不为我的所有课程创建在线版本——我在一所大学教书——我决定在 Wagtail 中执行此操作。这是一个比大学所能提供的任何解决方案都要强大得多的解决方案。 (我想很多人都和我一样。)到目前为止一切都很好,但我不是程序员(我教创意写作!)所以我对一些事情有点不知所措。这是我需要帮助的一件事。我有类别(根据 Kalob 的教程),并且我有类别列表页面。我单击一个类别,我得到一个页面,该页面仅显示该类别中的页面。到目前为止,一切都很好。但是,我如何在这些列表页面上显示“显示类别 X 中的页面”的 header?这是我的课程应用模型中的内容(直接取自 Kalob's tutorial on categories):
@route(r"^category/(?P<cat_slug>[-\w]*)/$", name="category_view")
def category_view(self, request, cat_slug):
"""Find courses based on a category."""
context = self.get_context(request)
try:
# Look for the course category by its slug.
category = CourseCategory.objects.get(slug=cat_slug)
except Exception:
category = None
if category is None:
# This is an additional check.
pass
context["courses"] = (
CoursePage.objects.live().public().filter(
categories__in=[category])
)
下面是我在这些类别页面的模板中的内容:
<ul class="menu-list">
{% for cat in categories %}
<li>
<a href="{% routablepageurl page "category_view" cat.slug %}">
{{ cat.name }}
</a>
</li>
{% endfor %}
</ul>
正如预期的那样,上面显示了所有类别。我如何只显示所选页面的类别,以便我可以将其放在页面标题中?我已经尝试了一些事情,但正如我所说,我在这里超出了我的深度,我只是在猜测和谷歌搜索——到目前为止,没有成功。我知道很多 不 的方法。
不确定我是否遗漏了什么,但如果您想让当前类别可用于您的模板(基于 URL 中的 slug 的类别)。您可以将它添加到上下文中以使其在您的模板中可用,类似于您添加 courses
.
的方式
例子
my_model.py
@route(r"^category/(?P<cat_slug>[-\w]*)/$", name="category_view")
def category_view(self, request, cat_slug):
"""Find courses based on a category."""
# ... rest of the code from above
context["courses"] = (
CoursePage.objects.live().public().filter(
categories__in=[category])
)
context["current_category"] = category
my_template.html
<h2>{{ page.title }} - {{ current_category }}
我已经在我的基本网站上使用 Wagtail 一段时间了,但在大流行期间,我不得不为我的所有课程创建在线版本——我在一所大学教书——我决定在 Wagtail 中执行此操作。这是一个比大学所能提供的任何解决方案都要强大得多的解决方案。 (我想很多人都和我一样。)到目前为止一切都很好,但我不是程序员(我教创意写作!)所以我对一些事情有点不知所措。这是我需要帮助的一件事。我有类别(根据 Kalob 的教程),并且我有类别列表页面。我单击一个类别,我得到一个页面,该页面仅显示该类别中的页面。到目前为止,一切都很好。但是,我如何在这些列表页面上显示“显示类别 X 中的页面”的 header?这是我的课程应用模型中的内容(直接取自 Kalob's tutorial on categories):
@route(r"^category/(?P<cat_slug>[-\w]*)/$", name="category_view")
def category_view(self, request, cat_slug):
"""Find courses based on a category."""
context = self.get_context(request)
try:
# Look for the course category by its slug.
category = CourseCategory.objects.get(slug=cat_slug)
except Exception:
category = None
if category is None:
# This is an additional check.
pass
context["courses"] = (
CoursePage.objects.live().public().filter(
categories__in=[category])
)
下面是我在这些类别页面的模板中的内容:
<ul class="menu-list">
{% for cat in categories %}
<li>
<a href="{% routablepageurl page "category_view" cat.slug %}">
{{ cat.name }}
</a>
</li>
{% endfor %}
</ul>
正如预期的那样,上面显示了所有类别。我如何只显示所选页面的类别,以便我可以将其放在页面标题中?我已经尝试了一些事情,但正如我所说,我在这里超出了我的深度,我只是在猜测和谷歌搜索——到目前为止,没有成功。我知道很多 不 的方法。
不确定我是否遗漏了什么,但如果您想让当前类别可用于您的模板(基于 URL 中的 slug 的类别)。您可以将它添加到上下文中以使其在您的模板中可用,类似于您添加 courses
.
例子
my_model.py
@route(r"^category/(?P<cat_slug>[-\w]*)/$", name="category_view")
def category_view(self, request, cat_slug):
"""Find courses based on a category."""
# ... rest of the code from above
context["courses"] = (
CoursePage.objects.live().public().filter(
categories__in=[category])
)
context["current_category"] = category
my_template.html
<h2>{{ page.title }} - {{ current_category }}