作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Wagtail CMS中,我不知道如何构建指向特定页面的链接。我想要模板中从BlogIndexPage
到BlogIndexArchivePage
的(固定的,未创作的)链接,反之亦然。
在官方文档中pageurl看起来很有希望:
{% load wagtailcore_tags %}
...
<a href="{% pageurl self.blog_page %}">
blog_page
的表示法,但是
page-classes
的名称类似于
BlogPage
或
BlogIndexPage
。我是否必须在
models.py
中定义要链接到的页面-如果是这样:如何?
最佳答案
在给出详细答案之前,我将提出一个简单的建议:假设您已经给您的博客索引和博客存档页面提供了诸如/blog/
和/blog/archive/
的明智的URL,是否有任何理由相信它们将会改变?如果没有,那么只需在模板上写一个硬编码的<a href="/blog/">
链接,然后就不用管它了。这似乎是一个解决方案,但是您将需要一种持久的方式来指定特定页面作为博客索引-无论是基于页面类型,ID还是站点结构中的位置-并通过URL可能比您能想到的任何其他机制更明智,更适合 future 。毕竟,URL应该是持久标识符。
好的。详细答案:
在pageurl
文档的示例中,self.blog_page
只是引用Page
对象的变量。如果您具有这样的设置,那么它就是您要使用的设置,其中blog_page
是页面的字段,指向其他页面:
class ExamplePage(Page):
body = RichTextField()
blog_page = models.ForeignKey('wagtailcore.Page')
content_panels = Page.content_panels + [
FieldPanel('body'),
PageChooserPanel('blog_page'),
]
Page
对象。
BlogIndexPage
”时,您的意思是在任何时候您的站点上都将确切存在该类型的一页。如果这确实是一个有效的假设,那么用于检索该页面的合适Django表达式将是:
BlogIndexPage.objects.first()
。 (如果这不是一个有效的假设,那么您将需要自己决定站点如何选择一个特定的BlogIndexPage作为博客索引。)
get_context
方法:
class ExamplePage(Page):
body = RichTextField()
def get_context(self, request):
context = super(ExamplePage, self).get_context(request)
context['blog_index'] = BlogIndexPage.objects.first()
return context
blog_index
可用,允许您编写:
{% pageurl blog_index %}
。
关于wagtail - 链接到Wagtail CMS中的特定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766186/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!