Django:flatpages的命名空间?

时间:2017-06-05 13:16:37

标签: python django python-3.x

所以我是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模式,但这没有用。我怎样才能到达正确的地方?

1 个答案:

答案 0 :(得分:1)

由于您没有直接在根目录中托管页面,因此url属性不会返回整个路径。相反,您应该像任何其他对象一样使用URL反转功能:

{% for page in flatpages %}
    <li><a href="{% url 'django.contrib.flatpages.views.flatpage' page.url %}">{{ page.title }}</a></li>
{% endfor %}