Я согласен с Anentropic , что нет смысла использовать Django Flatpages, если вам нужно написать urlconfs для их использования. Гораздо проще использовать общие представления , такие как TemplateView
напрямую:
from django.conf.urls import patterns, url
from django.views.generic import TemplateView
urlpatterns = patterns('',
url(r'^about/$', TemplateView.as_view(template_name="about.html"), name="about"),
)
Flatpages использует FlatpageFallbackMiddleware
, который отлавливает 404 ошибки и пытается найти контент для запрошенного URL в вашей базе данных. Основным преимуществом является то, что вам не нужно прикасаться к шаблонам напрямую каждый раз, когда вам нужно что-то изменить в них, недостатком является необходимость использования базы данных:)
Если вы все еще хотите использовать приложение Flatpages, вам лучше использовать get_flatpages
тег шаблона:
{% load flatpages %}
<ul>
{% for page in get_flatpages %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>
Лично я редко ссылаюсь на страницы за пределами главного меню веб-сайта, которое включено через {% include 'includes/nav.html' %}
и выглядит так:
<ul>
<li><a href="/about/">About</a></li>
<li><a href="/credits/">Credits</a></li>
...
</ul>
Я не чувствую, что нарушаю СУХОЙ ПОЦЕЛУЙ или что-то :) :)