【问题标题】:Using a specific flatpage in a template在模板中使用特定的平面页面
【发布时间】:2016-02-19 11:12:51
【问题描述】:

我正在使用django flatpages,我想知道是否有一种简洁的方法可以在模板中加载一个特定的平面页面。文档显示以下模式:

{% load flatpages %}

{% get_flatpages '/about/' as about_pages %}
{% get_flatpages about_prefix as about_pages %}
{% get_flatpages '/about/' for someuser as about_pages %}

我只想在模板中加载一个特定页面,本质上是像包含语句一样使用它(例如{% include 'homepage.html' %}

我使用的方法是这样的:

{% get_flatpages '/flat-homepage/' as flatpages %}
{{ flatpages.first.content|safe }}

这很好用,但我认为可能有一种更简洁的方法。我将内容标记为safe,因为我希望应用 html 样式(同样,不确定是否有更好的方法)

【问题讨论】:

  • 您是否尝试访问所需平面页面之外的内容?

标签: python django django-templates django-1.7


【解决方案1】:

默认情况下,有两种解决方案。

首先,在 url 中注册您的平面页面,如下所示:

from django.contrib.flatpages import views

urlpatterns = [
    url(r'^about-us/$', views.flatpage, {'url': '/about-us/'}, name='about'),
]

这样,您可以使用{% url %} 标签访问它,就像普通视图一样。

第二种方法,如果您知道该页面的确切网址,您可以使用以下方式访问它的网址:

{% url 'django.contrib.flatpages.views.flatpage' url='url_to_flatpage_here' %}

没有别的办法,因为所有的平面页面都是通过url来标识的。

【讨论】:

  • 我尝试使用 URL 名称并且它有效:{% url 'about' %}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 2018-10-04
  • 2016-03-10
  • 2017-08-31
  • 1970-01-01
  • 2022-08-21
  • 1970-01-01
相关资源
最近更新 更多