我在基本网站上使用Wagtail已有一段时间了,但是在大流行期间,我必须创建所有课程的在线版本-我在大学任教-我决定这样做这在Wa。这是比大学所能提供的任何解决方案都要强大的解决方案。 (我认为很多人都处于这种情况。)到目前为止,情况非常好,但是我不是程序员(我在教创意写作!),所以我在一些事情上有些发out。这是我可以帮助的一件事。我有类别(按照Kalob的教程),并且有类别列表页面。我单击一个类别,然后得到一个页面,仅显示该类别中的页面。到现在为止还挺好。但是,如何在这些列表页面上显示标题为“显示X类页面”的标题?这是我的课程应用程序模型中的内容(直接取自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>
按预期,以上显示了所有类别。如何仅显示所选页面的类别,以便可以将其放在页面标题中?我已经尝试了一些方法,但是正如我所说的,我在这里没有深度,我只是在猜测和谷歌搜索-到目前为止,没有成功。我知道很多不使之工作的方法。
答案 0 :(得分:1)
不确定我是否缺少某些内容,但是如果您想使当前类别对您的模板可用(基于URL中的段的类别)。您可以将其添加到上下文中以使其在模板中可用,类似于添加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 }}