djq*_*djq 7 python django django-templates django-1.7
我正在使用django flatpage,我想知道是否有一种在模板中加载一个特定平面的简洁方法.文档显示以下模式:
{% load flatpages %}
{% get_flatpages '/about/' as about_pages %}
{% get_flatpages about_prefix as about_pages %}
{% get_flatpages '/about/' for someuser as about_pages %}
Run Code Online (Sandbox Code Playgroud)
我只是想在模板中加载一个特定页面,基本上像使用include语句一样使用它(例如{% include 'homepage.html' %})
我使用的方法是这样的:
{% get_flatpages '/flat-homepage/' as flatpages %}
{{ flatpages.first.content|safe }}
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但我认为这可能会有一种更简洁的方式.我正在标记内容,safe因为我想要应用html样式(再次,不确定是否有更好的方法来执行此操作)
默认情况下,有两种解决方案。
首先,在 url 中注册您的平面页面,如下所示:
from django.contrib.flatpages import views
urlpatterns = [
url(r'^about-us/$', views.flatpage, {'url': '/about-us/'}, name='about'),
]
Run Code Online (Sandbox Code Playgroud)
这样,您就可以使用{% url %}标签访问它,就像普通视图一样。
第二种方式,如果您知道该页面的确切 url,则可以使用以下方式访问它的 url:
{% url 'django.contrib.flatpages.views.flatpage' url='url_to_flatpage_here' %}
Run Code Online (Sandbox Code Playgroud)
没有其他办法,因为所有的 Flatpages 都是通过 url 来标识的。
| 归档时间: |
|
| 查看次数: |
444 次 |
| 最近记录: |