如何使用base.html中的{%pageurl%}

时间:2018-03-01 14:41:13

标签: wagtail

我有3个型号:BlogPage, PostPage, AboutPage。我已经用slug&#34; about-page-slug&#34;创建了AboutPage的实例。在我的主文件夹中,我有base.html文件。在这个文件中,我创建了一个导航栏。此导航栏有3个链接:BlogIndex,Posts和About。现在我想&#34;关于&#34;链接从导航栏导航到&#34;关于页面&#34;我之前创建的模型实例。我发现我可以使用<a href="{% slugurl 'about-page-slug' %}"导航到AboutPage模型实例。但我无法弄清楚如何在base.html中使用{%pageurl%}:要使用它我需要提供&#34;关于页面&#34;的实例。模型到模板&#39; base.html&#39;但我没有模型为它重写get_context_data()。所以我的问题是:如果这是使用{%slugurl%}的最佳方式,或者还有其他方法可以使用{%pageurl%}来解决这个问题。感谢帮助。

1 个答案:

答案 0 :(得分:0)

只需使用{% slugurl %},甚至更简单的硬编码<a href="/about/">,因为您的“关于”页面肯定不会出现在任何其他网址上。

还有其他可能的方法,例如在context processorcustom template tag内调用AboutPage.objects.first()并将结果传递给{% pageurl %}。但是,坦率地说,对URL进行硬编码的唯一原因是,如果您担心某人可能会登录管理员并不小心(或恶意)移动或重命名该页面。 (如果这是你认为值得防范的场景,大概你需要考虑如果他们完全删除页面会发生什么......)