所以我是Django的新手(并完成了7部分教程)以及阅读flatpages app文档。
最后,编写Django文档的人员会演示如何检索所有平面页面:
{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>
我现在有平面工作(例如,如果我转到/ pages / my_flatpage /我提供的默认模板。因为我在url(r'^pages/', include('django.contrib.flatpages.urls'))
中包含了urlpatterns
。
所以我现在在我的另一个应用程序中,并希望链接到这些flatpages。使用上面的代码我创建链接。但是,当我点击它们时,它们不会呈现,因为它们被路由到/my_flatpage/
而不是/pages/my_flatpage/
。
所以我尝试在我的应用程序中包含url模式,但这没有用。我怎样才能到达正确的地方?
答案 0 :(得分:1)
由于您没有直接在根目录中托管页面,因此url
属性不会返回整个路径。相反,您应该像任何其他对象一样使用URL反转功能:
{% for page in flatpages %}
<li><a href="{% url 'django.contrib.flatpages.views.flatpage' page.url %}">{{ page.title }}</a></li>
{% endfor %}